我正在使用下面的代码用python向人们发送电子邮件。在
import smtplib
from email.mime.multipart import MIMEMultipart, MIMEBase
from email.mime.text import MIMEText
from email.utils import formatdate
def send_mail(send_from,send_to, subject, text, files=[], server = "localhost"):
for s in send_to:
COMMASPACE = ', '
msg = MIMEMultipart()
msg['From'] = send_from
msg['To'] = COMMASPACE.join(s)
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = subject
msg.attach( MIMEText(text) )
for f in files:
part = MIMEBase('application', "octet-stream")
part.set_payload( open(f,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' %os.path.basename(f))
msg.attach(part)
server = smtplib.SMTP(server)
server.sendmail(send_from, s, msg.as_string())
server.close()
抱歉,如果格式混乱的话。emails是一个有两个email的预定义列表。我遇到的错误是: AttributeError:SMTP实例没有属性“find”
有什么想法吗?提前谢谢。在
我想你的问题是:
我想你要做的是:
^{pr2}$您不需要为每个收件人创建单独的电子邮件;只需发送包含多个收件人的单个邮件:
这几乎与docs中的示例“这是一个如何发送包含可能驻留在某个目录中的家庭照片的MIME消息的示例”。在
(如果不希望每个人都看到对方的地址,可以将其全部设置为}。)
BCC
,而不是{如果您对原始代码的错误比对如何正确处理更感兴趣,那么有两个直接可见的问题:
join
。在[s]
而不是{这两种情况都是由相同的混淆造成的,将每个地址视为一个地址列表。同一问题可能会导致其他错误。在
相关问题 更多 >
编程相关推荐