python发邮件给多个人_Python:向多个收件人发送电子邮件

作者尝试使用Python通过SMTP发送电子邮件,但发现电子邮件只发送给收件人列表的第一个地址。怀疑getRecipients()函数可能存在问题,且提到硬编码多个地址时,主题显示正常,而使用文件读取时出现问题。
摘要由CSDN通过智能技术生成

我试图用Python给多个人发电子邮件。在def getRecipients(fileWithRecipients):

recipients = []

f = open(fileWithRecipients, 'r')

for line in f:

recipients.append(line)

return recipients

def test_email():

gmail_user = "csarankings@gmail.com"

gmail_pass = getPassword("pass.txt")

FROM = "csarankings@gmail.com"

TO = getRecipients("recipients.txt")

date = getCurrentDate()

SUBJECT = "Current CSA Rankings: " + date

TEXT = createEmailMessageFromFile("rankings.txt")

message = """\From: %s\nTo: %s\nSubject: %s\n\n%s """ % (FROM, ", ".join(TO), SUBJECT, TEXT)

try:

server = smtplib.SMTP("smtp.gmail.com", 587)

server.ehlo()

server.starttls()

server.login(gmail_user, gmail_pass)

server.sendmail(FROM, TO, message)

server.close()

print("it worked")

except:

print("it failed :(")

不管出于什么原因,我的电子邮件只发送给收件人列表中的第一个收件人(我的test_email()函数中的TO变量)。在

我的收件人文件每行只包含一个电子邮件地址(目前只有两个)。我认为我的getRecipients()函数可能有问题,所以我只是将两封电子邮件硬编码到TO变量中,它适用于第一个电子邮件地址,而不是第二个电子邮件地址。在

知道为什么会这样吗?我怀疑这与:

^{pr2}$

在这里我设置了我的message变量。在

注意:我的test_email()很大程度上是基于这里投票最多的答案:

编辑:值得一提的是,当我将一个电子邮件地址的列表硬编码到TO变量中时,主题会在电子邮件中正确显示。当我使用getRecipients()函数时(即使在收件人.txt文件),它在电子邮件正文中显示:Subject: Current CSA Rankings 6/13/15

不确定是否相关,但认为可能与问题有关。在

编辑2:我不认为我的问题是重复的:

因为,当我使用smtplib.sendmail()函数时,我根本不使用email模块,所以我们的代码非常不同。。。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值