2016-06-27 9 views
0

これまではIndyとHotmailで電子メールを送信できましたが、Outlookアカウントを使用して送信しようとすると、常に「認証に失敗しました」というエラーが表示されます。私のユーザ名とパスワードは正しいです、私はOutlook.comのウェブメールにログオンできます。ここでIndyを使用してOutlook.comで電子メールを送信

は私のコードです:

idsmtp1.Host := 'smtp.outlook.com'; 
idsmtp1.port := 587; 
idsmtp1.Username := '[email protected]'; 
idsmtp1.Password := 'mypassword'; 
idsmtp1.IOHandler := IdSSLIOHandlerSocketOpenSSL1; 
idsmtp1.usetls := utUseExplicitTLS; 
idsmtp1.UseEhlo := true ; 

IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1; 
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmClient; 

idsmtp1.connect; 
idsmtp1.Send(idmessage1); 

答えて

3

あなたのコードをゼロに変更を加えたし、それが動作を停止することを決定した場合は、お使いのOutlook.comアカウントで認証の問題があります。

2段階認証プロセスを有効にしてアプリケーションパスワードを作成する必要があります。電子メールサービスは、通常、標準のパスワードを使用しないようにします。ただし、アプリケーションがより現代的なログイン方法をサポートしていないと、アカウントにアプリケーションを設定してアクセスする必要があります。アプリのパスワードセクションにアクセスするには、まず2段階認証プロセスを有効にする必要があります。

enter image description here

これらは、アプリケーション固有のパスワードは、OAuthのような新しい2段階の認証方法をサポートしないアプリケーションのためにのみ使用され、2段階認証プロセスにOutlook.com > Options > Account Details > Security & Privacy > More Security Settings

+2

に配置することができます。そうする人は、実際のアカウントパスワードを利用することができます。 –

+0

私はoutlookを使わずにhotmailを使って送信します。おそらく、両方のセットアップの違いがありますか? – delphirules

+0

@RemyLebeauそうだけど、Indyはそれをサポートしていないんだけど...?私は最近チェックしていない。 –