使用Indy通过Outlook.com发送电子邮件

时间:2016-06-27 12:53:10

标签: delphi indy delphi-2007 indy10

过去我可以使用Indy和Hotmail成功发送电子邮件,但是当我尝试使用Outlook帐户发送邮件时,我总是得到“身份验证失败”的信息。错误。我的用户名和密码是正确的,我可以登录Outlook.com webmail。

这是我的代码:

idsmtp1.Host := 'smtp.outlook.com';
idsmtp1.port := 587;
idsmtp1.Username := 'myuser@outlook.com';
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);

1 个答案:

答案 0 :(得分:3)

如果您对代码进行了零更改,并且决定停止工作,那么您的Outlook.com帐户就会出现身份验证问题。

您最有可能需要启用两步验证并创建应用程序密码。电子邮件服务通常会阻止您使用标准密码,除非该应用程序支持更现代的登录方法,并且它们会强制您在帐户上设置应用程序以访问它。在您访问应用密码部分之前,您必须先启用两步验证。

enter image description here

这些可以位于Outlook.com > Options > Account Details > Security & Privacy > More Security Settings