Python将我的电子邮件发送到gmail,但未发送到Outlook或公司地址

时间:2019-01-18 12:32:54

标签: python

我的python代码从我的工作地址向我的gmail地址发送了一封电子邮件,但未将其发送至任何Outlook地址或工作地址。 当我发送电子邮件时,无论是否已发送,它都会显示在“已发送”框中。

import smtplib
import mimetypes
import email
import email.mime.application
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage

_from = 'myaddress@work.com.br'
_pass = 'pass'  
_to = ['mygmail@gmail.com','myaddress@work.com.br']

msg = email.mime.multipart.MIMEMultipart()
msg['Subject'] = 'Test'
msg['From'] = 'myaddress@work.com.br'
msg['To'] = ", ".join(_to)

body = MIMEText('Hi, this is a test email.<br><img src="cid:image"> <br>Thanks!.', 'html')
msg.attach(body)

fp = open('C:/Users/renan.p.costa/img.png', 'rb')
image = MIMEImage(fp.read())
fp.close()
image.add_header('Content-ID', '<image>')
msg.attach(image)

file='C:/Users/renan.p.costa/file.xlsx'
_filename='file.xlsx'
fp=open(file,'rb')
excelfile = email.mime.application.MIMEApplication(fp.read(),_subtype="xlsx")
fp.close()
anexo.add_header('Content-Disposition','attachment',filename=_filename)
msg.attach(excelfile)

s = smtplib.SMTP('smtp-mail.outlook.com', 587)
s.ehlo()
s.starttls()
s.login(_from,_pass)
s.sendmail(msg['From'],msg['To'], msg.as_string())
s.quit()

1 个答案:

答案 0 :(得分:0)

尝试发送电子邮件列表(_to,而不是用分隔的电子邮件字符串,因此您需要一个收件人地址字符串列表(裸字符串将被视为具有1个地址的列表) 。 在您的代码中,您可以修改以下行:

s.sendmail(msg['From'],msg['To'], msg.as_string())

由另一个人:

s.sendmail(msg['From'],_to, msg.as_string())

编辑

如果它不起作用,则可以尝试迭代该列表,以便为列表中的每个电子邮件发送不同的sendmail:

for to_email in _to:
    s.sendmail(msg['From'],to_email, msg.as_string())