こんばんは。panacheです。
今HotmailやGmailでメールを送信するプログラムを作っているのですが、どうやらSMTP認証とSSL認証が必要ということがわかりました。
SMTP認証はTIdSASLLoginやTIdUserPassProviderを貼り付けてオブジェクトインスペクタを設定して、IdSMTP1.Connectをすればいいのでしょうか?
また、SSL認証の仕方も全くわかりません。
というのも今まで1度もDLLを使用したことが無いので使い方がわかりません。
とりあえずLibeay32.dllとssleay32.dllが必要ということでそれらのDLLをプロジェクトと同じフォルダにコピーしたのですが、他に何か宣言などが必要なのでしょうか?
また、SSLのDLLの場合、どのように(SMTPでいうオブジェクトインスペクタの設定)設定すればよいのでしょうか?こちらも何かConnectionのようなことを行うのですか?
どなたかご教授お願いします。
沢山同じ質問あるからぐぐるといいよ
>過去ログにさん
大変申し訳ありません。
検索したら見つかりました。
しかし、それを参考にしてコードを書き直して実行してみたのですが、「Connection Closed Gracefully 」エラーが出て送信できません。
この例外が余分な例外ということも知っていますが、メールが送信されていないので何かしら引っかかってるのかと思います。
https://www.petitmonte.com/bbs/answers?question_id=6313
これを参考にコードを書き換えました。
-----
SMTP := TIdSMTP.Create(nil);
SMTP.Host := 'smtp.gmail.com';
SMTP.Port:=587;
SMTP.Username := '(username)@gmail.com'; // UserName
SMTP.Password:= '(pass)'; // Password
SSL := TIdSSLIOHandlerSocketOpenSSL.Create;
SSL.Host := SMTP.Host;
SSL.Port := SMTP.Port;
SSL.Destination := SSL.Host + ':' + IntToStr(SSL.Port);
SMTP.IOHandler := SSL;
SMTP.UseTLS := utUseExplicitTLS;
SMTP.Connect;
showmessage('connect:suc');
SMTP.QuickSend('smtp.gmail.com', 'sub', '(to)', '(from)', 'test');
showmessage('send:suc');
-----
SSLでQuickSendは使えないよ。
>ソース参照さん
ありがとうございます。
TIdMessageをjconvertを使って送信できました。
無事解決しました。
ありがとうございます。
チェックし忘れです;;
ツイート | ![]() |