###前提・実現したいこと
DelphiでHotmail経由でメールを送信したい
「SSLメソッドの取得でエラーが発生しました。」というメッセージが出て正常にメッセージを送信できません。
何か特別な設定が必要でしょうか?
###該当のソースコード
Delphi
1procedure TForm1.Button1Click(Sender: TObject); 2var 3 IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL; 4 IdSMTP: TIdSMTP; 5 IdMessage: TIdMessage; 6 IdText: TIdText; 7begin 8 9 IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(nil); 10 IdSMTP := TIdSMTP.Create(nil); 11 IdMessage := TIdMessage.Create(nil); 12 IdText := TIdText.Create(IdMessage.MessageParts); 13 IdSMTP.IOHandler:=IdSSLIOHandlerSocket; 14 15 try 16 17 IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv2; 18 IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient; 19 20 IdSMTP.IOHandler := IdSSLIOHandlerSocket; 21 IdSMTP.UseTLS := utUseImplicitTLS; 22 IdSMTP.AuthType := satDefault; 23 IdSMTP.Port := 587; 24 IdSMTP.Host := 'smtp-mail.outlook.com'; 25 IdSMTP.Username := 'hoge@hotmail.com'; // ユーザ名 26 IdSMTP.Password := 'huga'; // パスワード 27 28 IdMessage.From.Address := 'hoge@hotmail.com'; // 送信元アドレス 29 IdMessage.From.Name := 'Hoge Huga'; 30 IdMessage.ReplyTo.EMailAddresses := IdMessage.From.Address; 31 IdMessage.Recipients.Add.Text := 'sendto@hogehuga.com'; // 送信先アドレス 32 IdMessage.Subject := 'タイトル'; 33 IdMessage.Encoding := meMIME; 34 IdMessage.OnInitializeISO:=IdMessage_InitializeISO; 35 IdMessage.ContentType := 'text/plain'; 36 IdMessage.CharSet := 'ISO-2022-JP'; 37 IdMessage.ContentTransferEncoding := 'BASE64'; 38 39 IdText.Body.Clear; 40 IdText.Body.Add('本文'); 41 IdText.ContentType := 'text/plain; charset=ISO-2022-JP'; 42 43 try 44 IdSMTP.Connect; 45 IdSMTP.Authenticate; 46 except 47 on E:Exception do 48 begin 49 MessageDlg('Cannot authenticate: ' + E.Message, mtWarning, [mbOK], 0); 50 Exit; 51 end; 52 end; 53 54 try 55 IdSMTP.Send(IdMessage); 56 except 57 On E:Exception do 58 begin 59 MessageDlg('Error while sending a message: ' + E.Message, mtWarning, [mbOK], 0); 60 end; 61 end; 62 finally 63 IdSMTP.Disconnect(); 64 FreeAndNil(IdText); 65 FreeAndNil(IdMessage); 66 FreeAndNil(IdSSLIOHandlerSocket); 67 FreeAndNil(IdSMTP); 68 end; 69 70end; 71 72procedure TForm1.IdMessage_InitializeISO(var VHeaderEncoding: Char; var VCharSet: string); 73begin 74 VHeaderEncoding := 'B'; 75 VCharSet := 'UTF-8'; 76end;
###試したこと
Yahooを使用(正常に使用可)
Gmailを使用(正常に使用可)
###補足情報(言語/FW/ツール等のバージョンなど)
Delphi 10.1 update2
OpenSSL openssl-1.0.2l
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。