【发布时间】:2023-03-05 04:40:01
【问题描述】:
我使用的是 Django 1.11 的默认 EmailBackend,我只是简单地将 send_mail 方法称为 ref。文件说,这是我的 SMTP 服务器设置:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp-mail.outlook.com'
EMAIL_PORT = '587'
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'oalite@xxx.com'
EMAIL_HOST_PASSWORD = 'xxxxx'
EMAIL_SUBJECT_PREFIX = '[OALite Admin]'
这是我的 smtplib.py 输出的日志:
reply: b'250-CHUNKING\r\n'
reply: b'250 SMTPUTF8\r\n'
reply: retcode (250); Msg: b'SG2PR06CA0180.outlook.office365.com Hello [85.203.47.85]\nSIZE 157286400\nPIPELINING\nDSN\nENHANCEDSTATUSCODES\nAUTH LOGIN XOAUTH2\n8BITMIME\nBINARYMIME\nCHUNKING\nSMTPUTF8'
send: 'AUTH LOGIN b2FBaXRl0GlyaXhpLmNvb0==\r\n'
reply: b'334 UGFzc3dvcmQ6\r\n'
reply: retcode (334); Msg: b'UGFzc3dvcmQ6'
send: 'QEdBbH1w0DJuSwY=\r\n
>>>>>>>>>>>>>>>>>> halted here for about 15s to wait the reply <<<<<<<<<<<<<<<<<<<
reply: b'235 2.7.0 Authentication successful target host BLUPR04MB420.namprd04.prod.outlook.com\r\n'
reply: retcode (235); Msg: b'2.7.0 Authentication successful target host BLUPR04MB420.namprd04.prod.outlook.com'
send: 'mail FROM:<oalite@xxx.com> size=943\r\n'
reply: b'250 2.1.0 Sender OK\r\n'
reply: retcode (250); Msg: b'2.1.0 Sender OK'
send: 'rcpt TO:<user.foo@xxx.com>\r\n'
reply: b'250 2.1.5 Recipient OK\r\n'
请注意,我使用的是微软的企业邮箱,域名xxx.com实际上是我们公司的域名。
我不知道为什么需要 15 秒才能进行身份验证,使用 Outlook 桌面应用程序以相同的帐户发送电子邮件非常快。使用 Exchange 协议比使用 SMTP 协议快吗?
感谢您的帮助!
【问题讨论】:
-
你的问题是什么?为什么这么慢?你能做些什么呢?微软服务的身份验证目前显然需要 15 秒...... :) 您的问题似乎包括您当前的密码 base64 编码 - 这是一个坏主意,因为人们可以轻松解码它。您应该删除这部分并更改密码。
-
@dahrens 感谢您的建议,我已经修改了我的问题。密码和电子邮件地址是伪造的 :P 所以在 SMTP 协议下验证我的帐户需要 15 秒是正常的吗?还是我错过了一些加快身份验证过程的东西?