python smtp 群發郵件


最近工作中遇到使用腳本處理問題並發送結果郵件,使用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郵箱

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM