我的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()
答案 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())