想向一多個用戶發送郵件,於是寫了發送方法,然後循環讀取文件,想讓收件人看到郵件中的收件人只有自己,但是收件人還是顯示列表中的多個而且是檔案中第一個人收件者看到一個,第二個收件者看到前兩個像是追加到list似的,但是在呼叫中列印出to_addr 也是只有一個位址的,並不是多個地址。
後來還是發了,註解了msg['To']就可以不顯示收件人,但是想搞清楚為什麼會顯示多個。
請大神幫忙分析下。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import smtplib
import os
import socket
import commands
from email.mime.text import MIMEText
from email.header import Header
def send(a,b):
user = 'xxxx'
from_addr = 'xxxx@xxxx.com'
password = '***********;'
smtp_server = 'smtp.xxxx.com'
to_addr = b
print "##############"+to_addr
msg['To'] = Header(to_addr, 'utf-8').encode()
server = smtplib.SMTP(smtp_server, 25)
server.set_debuglevel(1)
server.login(user, password)
print '**************'+to_addr
server.sendmail(from_addr, to_addr, a.as_string())
server.close()
if __name__ == '__main__':
msg = MIMEText('内容文字内容文字', 'plain', 'utf-8')
msg['Subject'] = Header(u'我是标题', 'utf-8').encode()
file = open("sample.txt")
#lines=file.readlines()
for i in file:
print i
print "##"
q=send(msg,i)
##
這應該是郵箱自己幫你合併顯示的,你應該登入收件者的信箱看看收件者清單是不是一個,而不是看寄件者
試著睡一覺?在每個迴圈裡time.sleep(60)?