Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python smtplib不发送带有office365地址的电子邮件_Python_Email_Smtp_Office365 - Fatal编程技术网

python smtplib不发送带有office365地址的电子邮件

python smtplib不发送带有office365地址的电子邮件,python,email,smtp,office365,Python,Email,Smtp,Office365,我使用的smtplib代码如下,根据office365文档,我本应使用smtp.office365.com地址进行smtp,但无法使用该地址,我尝试使用smtp.outlook.com地址,并能够通过此工具接收邮件 但是使用下面的代码无法使邮件使用相同的配置 def send_Mail(template,P_EMAIL, msg_header): msg = MIMEMultipart() msg['From'] = 'dcm@whaii.com' msg['To'

我使用的smtplib代码如下,根据office365文档,我本应使用smtp.office365.com地址进行smtp,但无法使用该地址,我尝试使用smtp.outlook.com地址,并能够通过此工具接收邮件

但是使用下面的代码无法使邮件使用相同的配置

  def send_Mail(template,P_EMAIL, msg_header):
    msg = MIMEMultipart()
    msg['From'] = 'dcm@whaii.com'
    msg['To'] = P_EMAIL
    msg['Subject'] = msg_header

    msg.attach(MIMEText(template, 'plain'))
    try:
      server = smtplib.SMTP('smtp.outlook.com', 587)
      server.set_debuglevel(True)
      #server.ehlo()
      server.starttls()
      server.login('dcm@whaii.com', 'xxxx')
      text = msg.as_string()
      server.sendmail('xxxxx', P_EMAIL, template)
      print('email sent')
      server.quit()
    except Exception as e:
        print(e)
    return True
这是来自python服务器的日志

send: 'ehlo [172.50.5.2]\r\n'
reply: b'250-BYAPR07CA0022.outlook.office365.com Hello [167.88.61.92]\r\n'
reply: b'250-SIZE 157286400\r\n'
reply: b'250-PIPELINING\r\n'
reply: b'250-DSN\r\n'
reply: b'250-ENHANCEDSTATUSCODES\r\n'
reply: b'250-STARTTLS\r\n'
reply: b'250-8BITMIME\r\n'
reply: b'250-BINARYMIME\r\n'
reply: b'250-CHUNKING\r\n'
reply: b'250 SMTPUTF8\r\n'
reply: retcode (250); Msg: b'BYAPR07CA0022.outlook.office365.com Hello [167.88.61.92]\nSIZE 157286400\nPIPELINING\nDSN\nENHANCEDSTATUSCODES\nSTARTTLS\n8BITMIME\nBINARYMIME\nCHUNKING\nSMTPUTF8'
send: 'STARTTLS\r\n'
reply: b'220 2.0.0 SMTP server ready\r\n'
reply: retcode (220); Msg: b'2.0.0 SMTP server ready'
以及smtp测试工具中的日志

Connected to smtp://smtp.outlook.com:587/?starttls=always
<< 220 CO2PR05CA0093.outlook.office365.com Microsoft ESMTP MAIL Service ready at Mon, 6 Apr 2020 09:37:47 퍍
>> EHLO [172.31.0.185]
<< 250-CO2PR05CA0093.outlook.office365.com Hello [52.88.153.215]
<< 250-SIZE 157286400
<< 250-PIPELINING
<< 250-DSN
<< 250-ENHANCEDSTATUSCODES
<< 250-STARTTLS
<< 250-8BITMIME
<< 250-BINARYMIME
<< 250-CHUNKING
<< 250 SMTPUTF8
>> STARTTLS
<< 220 2.0.0 SMTP server ready
>> EHLO [172.31.0.185]
<< 250-CO2PR05CA0093.outlook.office365.com Hello [52.88.153.215]
<< 250-SIZE 157286400
<< 250-PIPELINING
<< 250-DSN
<< 250-ENHANCEDSTATUSCODES
<< 250-AUTH LOGIN XOAUTH2
<< 250-8BITMIME
<< 250-BINARYMIME
<< 250-CHUNKING
<< 250 SMTPUTF8
>> AUTH LOGIN
<< 334 VXNlcm5hbWU6
>> ZGNtQHdoYWlpLmNvbQ==
<< 334 UGFzc3dvcmQ6
>> bjh4RU00dlhROFdIWjlxRQ==
<< 235 2.7.0 Authentication successful
>> MAIL FROM:<dcm@whaii.com>
>> RCPT TO:<maisnamraju@gmail.com>
<< 250 2.1.0 Sender OK
<< 250 2.1.5 Recipient OK
>> DATA
<< 354 Start mail input; end with <CRLF>.<CRLF>
>> From: dcm@whaii.com
>> Date: Mon, 06 Apr 2020 09:37:51 퍍
>> Subject: SMTP test from smtp.outlook.com
>> Message-Id: <0F3W5HOSAAU4.3W8YGW3D6FX53@WIN-AUIR3RRGP88>
>> To: maisnamraju@gmail.com
>> MIME-Version: 1.0
>> Content-Type: text/Test message
>>
>>
>> .
<< 250 2.0.0 OK <0F3W5HOSAAU4.3W8YGW3D6FX53@WIN-AUIR3RRGP88> [Hostname=DB8P189MB0636.EURP189.PROD.OUTLOOK.COM]``

Pretty confused now as to what I am doing wrong now. Would appreciate some help. Thanksf
已连接到smtp://smtp.outlook.com:587/?starttls=always
>EHLO[172.31.0.185]
>MIME版本:1.0
>>内容类型:文本/测试消息
>>
>>
>> .

这可能是字符编码问题


尝试重置密码并删除任何特殊字符。

这可能是字符编码问题


<>尝试重置您的密码并删除任何特殊字符。

< P>不要认为站点SMTP测试与Office 365SMTP.</P>一样正常工作。 您没有显示python代码中的所有日志。在server.login()之后,您应该有这样的答案

答复:“235 2.7.0身份验证成功\r\n”答复:retcode(235); 消息:2.7.0身份验证成功(235,'2.7.0身份验证 成功')

然后在sendEmail()之后 就像这样:

发送:'mail FROM:size=7\r\n'回复:'250 2.1.0发件人 确定\r\n'答复:retcode(250);Msg:2.1.0发送方确认发送:'rcpt 收件人:\r\n'答复:'250 2.1.5收件人确定\r\n'答复: retcode(250);Msg:2.1.5收件人确定发送:'data\r\n'回复:'354 启动邮件输入;以结尾。\r\n'答复:retcode(354); Msg:启动邮件输入;以…结束。数据:(354,'启动邮件 输入;以“.”结尾)发送:'Message\r\n。\r\n'回复:'250 2.0.0好 [Hostname=DB8P190MB0732.EURP190.PROD.OUTLOOK.COM]\r\n'回复:retcode (250); Msg:2.0.0正常 [Hostname=DB8P190MB0732.EURP190.PROD.OUTLOOK.COM]数据:(250,'2.0.0 好啊 [Hostname=DB8P190MB0732.EURP190.PROD.OUTLOOK.COM]'){


如果你不能收到电子邮件,它可能不是来自代码本身,而是来自执行的位置。在什么样的服务器上执行代码?

< P>不要考虑站点SMTP测试与Office 365SMTP.</P>工作正常。 您没有显示python代码中的所有日志。在server.login()之后,您应该有这样的答案

答复:“235 2.7.0身份验证成功\r\n”答复:retcode(235); 消息:2.7.0身份验证成功(235,'2.7.0身份验证 成功')

然后在sendEmail()之后 就像这样:

发送:'mail FROM:size=7\r\n'回复:'250 2.1.0发件人 确定\r\n'答复:retcode(250);Msg:2.1.0发送方确认发送:'rcpt 收件人:\r\n'答复:'250 2.1.5收件人确定\r\n'答复: retcode(250);Msg:2.1.5收件人确定发送:'data\r\n'回复:'354 启动邮件输入;以结尾。\r\n'答复:retcode(354); Msg:启动邮件输入;以…结束。数据:(354,'启动邮件 输入;以“.”结尾)发送:'Message\r\n。\r\n'回复:'250 2.0.0好 [Hostname=DB8P190MB0732.EURP190.PROD.OUTLOOK.COM]\r\n'回复:retcode (250); Msg:2.0.0正常 [Hostname=DB8P190MB0732.EURP190.PROD.OUTLOOK.COM]数据:(250,'2.0.0 好啊 [Hostname=DB8P190MB0732.EURP190.PROD.OUTLOOK.COM]'){

如果你不能收到电子邮件,它可能不是来自代码本身,而是来自执行的位置。您在什么类型的服务器上执行代码