使用Python smtplib从.txt文件发送电子邮件给多个收件人
我想从Python发送邮件到多个邮箱地址,这些地址是从一个.txt文件中导入的。我尝试了不同的写法,但都没有成功...
这是我的代码:
s.sendmail('sender@mail.com', ['recipient@mail.com', 'recipient2@mail.com', 'recipient3@mail.com'], msg.as_string())
所以我尝试从.txt文件中导入收件人的地址:
urlFile = open("mailList.txt", "r+")
mailList = urlFile.read()
s.sendmail('sender@mail.com', mailList, msg.as_string())
mainList.txt文件里包含:
['recipient@mail.com', 'recipient2@mail.com', 'recipient3@mail.com']
但是它不工作...
我还尝试过:
... [mailList] ... in the code, and '...','...','...' in the .txt file, but also no effect
还有
... [mailList] ... in the code, and ...','...','... in the .txt file, but also no effect...
有没有人知道该怎么做?
非常感谢!
6 个回答
2
这需要是真正的列表。所以,在这个文件里:
recipient@mail.com,recipient2@mail.com,recipient3@mail.com
你可以这样做:
mailList = urlFile.read().split(',')
35
这个问题已经有点答案了,但还不够完整。对我来说,问题在于“收件人(To:)”这个头部需要的是一个字符串格式的邮箱,而发送邮件的函数却需要一个列表结构。
# list of emails
emails = ["banjer@example.com", "slingblade@example.com", "dude@example.com"]
# Use a string for the To: header
msg['To'] = ', '.join( emails )
# Use a list for sendmail function
s.sendmail(from_email, emails, msg.as_string() )
3
urlFile = open("mailList.txt", "r+")
mailList = [i.strip() for i in urlFile.readlines()]
把每个收件人放在自己单独的一行上(也就是说,用换行符分开)。