我正在使用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'
请注意,我使用的是Microsoft的企业电子邮件帐户,域名xxx.com实际上是我们公司的域名。
我不知道为什么需要15秒进行身份验证,使用具有相同帐户的Outlook桌面应用程序发送电子邮件的速度非常快。使用Exchange协议然后使用SMTP协议会更快吗?
感谢您的帮助!
答案 0 :(得分:0)
在身份验证缓慢时,从视图快速发送外发邮件的几个选项:
postfix
轻松完成。您可以配置邮件服务器以连接到您的企业电子邮件帐户。似乎有REST API to connect to outlook.com - 因此您也可以编写your own mail backend来通过HTTP发送邮件。