码迷,mamicode.com
首页 > 编程语言 > 详细

python smtp 群发邮件

时间:2014-12-03 00:19:07      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   os   使用   sp   on   文件   

最近工作中遇到使用脚本处理问题并发送结果邮件,使用python的smtp模块很简单的完成了实现。今天遇到一个问题,根据脚本的测试结果需要群发邮件,但是发送邮件的py文件只有首个地址收到了邮件。仔细排查发现个有意思的地方:

发送邮件的py大致如下:

1 def sendmail(message,to_addrs)
2        ............................
3        ...........................
4        msg = MIMEMultipart()
5        msg[From] = _from
6        msg[To] = to_addrs
7        ......................
8        ......................
9        mailserver.sendmail(_from, to_addrs, message)

方法1 使用的方法是获取到邮件地址后,以“test@test.com,kratos@test.com,admin@test.com”以字符串形式作为参数“to_addrs”给了sendmail。脚本运行结束后只有test@test.com邮箱收到了邮件,后续地址均未收到邮件。

google 了python 的smtp之后,修改的方法是:

方法2 以["test@test.com","kratos@test.com","admin@test.com"]以列表形式作为参数“to_addrs”给了sendmail。

然后将“msg["To"] = to_addrs” 行修改为 “msg["To"] = ",".join(to_addrs)”搞定,指定的邮件列表中的账户均收到邮件

 

>>> a = "test@test.com,kratos@test.com,admin@test.com"
>>> a
test@test.com,kratos@test.com,admin@test.com
>>> type(a)
<type str>
>>> b = ["test@test.com","kratos@test.com","admin@test.com"]
>>> c = ",".join(b)
>>> c
test@test.com,kratos@test.com,admin@test.com
>>> type(c)
<type str>
>>> a == c
True

以上看 a 与c没什么区别,使用方法2 成功搞定。有时间在继续看看吧,没知识太可怕了呵呵。

备注:

  使用的是Gmail邮箱

 

python smtp 群发邮件

标签:style   blog   ar   color   os   使用   sp   on   文件   

原文地址:http://www.cnblogs.com/kratos0517/p/4138910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!