【问题标题】:Sending emails with Outlook.com using Indy使用 Indy 通过 Outlook.com 发送电子邮件
【发布时间】:2016-06-27 12:53:10
【问题描述】:

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

这是我的代码:

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);

【问题讨论】:

    标签: delphi indy delphi-2007 indy10


    【解决方案1】:

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

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

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

    【讨论】:

    • 在两步验证中,应用专用密码仅用于不支持 OAuth 等较新的两步验证方法的应用。这样做的人可以使用实际的帐户密码。
    • 我使用hotmail发送,而不是outlook;也许两者的设置之间存在差异?
    • @RemyLebeau 是的,但是 Indy 不支持它……是吗?我最近没有检查。
    • @delphirules AFAIK,它们是一回事。我相信 Hotmail 用户会自动使用 Outlook.com,但您是这里的帐户,您应该已经知道这一点。
    • Outlook.com > 选项 > 帐户详细信息 > 安全和隐私 > 更多安全设置 >
    猜你喜欢
    • 2014-05-23
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多