想向一多个用户发邮件,于是写了发送方法,然后循环读取文件,想让收件人看到邮件中的收件人只有自己,但是收件人还是显示列表中的多个而且是文件中第一个人收件人看到一个,第二个收件人看到前两个像是追加到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)?