启用双重验证与应用密码后Indy TIdSMTP连接Hotmail失败求助
解决Indy TIdSMTP/TIdIMAP4收发Hotmail邮件(双重验证+应用密码)的问题
SMTP发送配置要点
- 必须启用显式TLS加密:Hotmail的SMTP 587端口要求使用STARTTLS,需为TIdSMTP绑定SSL IOHandler,并设置
UseTLS为utUseExplicitTLS - 认证方式设为自动协商:不要硬指定Basic认证,设置
AuthType := satDefault让Indy自动选择服务器支持的认证类型(应用密码兼容NTLM等认证方式) - 用生成的应用密码替换原密码,用户名保持你的Hotmail邮箱地址
SMTP完整示例代码
var SMTP: TIdSMTP; SSLHandler: TIdSSLIOHandlerSocketOpenSSL; Msg: TIdMessage; begin SMTP := TIdSMTP.Create(nil); SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(SMTP); Msg := TIdMessage.Create(nil); try // SMTP核心配置 SMTP.Host := 'smtp-mail.outlook.com'; SMTP.Port := 587; SMTP.Username := '你的Hotmail邮箱@outlook.com'; SMTP.Password := '你生成的应用密码'; // 注意:应用密码无需空格,直接填完整字符串 SMTP.IOHandler := SSLHandler; SMTP.UseTLS := utUseExplicitTLS; SMTP.AuthType := satDefault; // 自动协商认证方式,避免强制Basic // 邮件内容配置 Msg.From.Address := SMTP.Username; Msg.Recipients.Add.Address := '收件人邮箱@xxx.com'; Msg.Subject := '测试邮件'; Msg.Body.Text := '这是使用Indy+应用密码发送的测试邮件'; // 发送邮件 SMTP.Connect; try SMTP.Send(Msg); ShowMessage('邮件发送成功'); finally SMTP.Disconnect; end; finally Msg.Free; SMTP.Free; end; end;
IMAP接收配置要点
- 端口推荐使用993(隐式TLS),也可使用143(显式TLS)
- 需绑定SSL IOHandler,对应设置
UseTLS(993端口用utUseImplicitTLS,143用utUseExplicitTLS) - 认证方式设为
satDefault,密码使用生成的应用密码
IMAP4完整示例代码
var IMAP: TIdIMAP4; SSLHandler: TIdSSLIOHandlerSocketOpenSSL; MailBox: TIdIMAP4MailBox; begin IMAP := TIdIMAP4.Create(nil); SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(IMAP); try // IMAP核心配置 IMAP.Host := 'imap-mail.outlook.com'; IMAP.Port := 993; IMAP.Username := '你的Hotmail邮箱@outlook.com'; IMAP.Password := '你生成的应用密码'; IMAP.IOHandler := SSLHandler; IMAP.UseTLS := utUseImplicitTLS; // 993端口用隐式TLS IMAP.AuthType := satDefault; // 连接并读取收件箱 IMAP.Connect; try IMAP.SelectMailBox('INBOX'); MailBox := IMAP.MailBox; ShowMessage(Format('收件箱共有%d封邮件', [MailBox.TotalMsgs])); // 可在此添加读取邮件内容的逻辑 finally IMAP.Disconnect; end; finally IMAP.Free; end; end;
关键注意事项
- 确保使用较新版本的Indy,旧版本可能对新认证机制支持不足
- 应用密码生成后需妥善保存,丢失需重新生成
- 不要在代码中硬编码密码,建议通过加密配置文件等安全方式存储
内容的提问来源于stack exchange,提问作者Moore
相关产品推荐
相关产品推荐

