如何用python自动发送邮件

Python016

如何用python自动发送邮件,第1张

注意如果使用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-8

import 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()

运行结果: