注意如果使用qq的smtp转发功能的话,需要在设置页面中将该功能打开,然后设定密码,改密码就是赋值给下文password中的。
开启smtp转发功能文档
[python] view plain copy
#from email.MIMEText import MIMEText #old version cannot recongnize by new python
from email.MIMEText import MIMEText
from email.Header import Header
msg = MIMEText('hello, send by python','plain','utf-8')
from_addr = "*****@qq.com" #email addresss include domain name
password = "******" #password
to_addr = "****@qq.com" # target email address
smtp_server = "smtp.qq.com" #smtp sever domain for qq is smtp.qq.com
import smtplib
server = smtplib.SMTP(smtp_server,25)
server.set_debuglevel(1)
server.login(from_addr,password)
server.sendmail(from_addr,[to_addr], msg.as_string())
server.quit()
上面这个是没有主题的,有主题的话建议采用下面这个代码
下面是连续发送有主题的文件10封
[python] view plain copy
from email.Header import Header
from email.MIMEText import MIMEText
from email import encoders
from email.utils import parseaddr, formataddr
import smtplib
def _format_addr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr))
from_addr = "*****@qq.com" #email addresss include domain name
password = "******" #password
to_addr = "****@qq.com" # target email address
smtp_server = "smtp.qq.com" #smtp sever domain for qq is smtp.qq.com
for num in range(1,11):
msg = MIMEText('hello, send by Tom', 'plain', 'utf-8')
msg['From'] = _format_addr('Tom <%s>' % from_addr)
msg['To'] = _format_addr('addministrator <%s>' % to_addr)
msg['Subject'] = Header('The greeting from Tom','utf-8').encode()
server = smtplib.SMTP(smtp_server,25)
server.set_debuglevel(1)
server.login(from_addr, password)
#server.sendmail(from_addr, [to_addr], msg.as_string())
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
比如我用自己的 139 邮箱 [email protected]
发送邮件到网易邮箱 也是我的办公邮箱 [email protected]
以下代码调试通过:
# coding: utf-8import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = '[email protected]'
receiver = '[email protected]'
subject = 'python email test'
smtpserver = 'smtp.139.com'
username = '[email protected]'
password = 'xxxxxxxx'
msg = MIMEText('你好 lucia 这是你的第一封 python 发出的邮件', 'text', 'utf-8')
# 中文需参数‘utf-8',单字节字符不需要
msg['Subject'] = Header(subject, 'utf-8')
smtp = smtplib.SMTP()
smtp.connect('smtp.139.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
运行结果: