python发送邮件方法
1、普通文本邮件
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import smtplib
from email.mime.text import MIMEText
mail_user="xxxx@126.com" #发送邮件的邮箱
mail_pass="xxxxxxx" #密码,口令
mailto_list="xxxxx@qq.com" #接受邮件的邮箱
mail_host="smtp.126.com" #设置服务器 例:smtp.126.com
strstr='你好' #内容
msg = MIMEText(strstr,'plain','utf-8') #邮件类型设置为plain
msg['Subject'] = "主题" #主题
msg['From'] = mail_user
msg['To'] = mailto_list
#邮件中文如果显示乱码,可以加上下面两句
msg["Accept-Language"]="zh-CN"
msg["Accept-Charset"]="ISO-8859-1,utf-8"
server = smtplib.SMTP()
server.connect(mail_host) #连接smtp邮件服务器
server.login(mail_user,mail_pass) #登录
server.sendmail(mail_user, mailto_list, msg.as_string()) #发送
server.close() #关闭
2、HTML格式邮件
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
mail_user="xxxxxxx@126.com" #发送邮件的邮箱
mail_pass="xxxxxx" #口令
mailto_list="xxxxxx@qq.com" #接收邮件的邮箱
to_list=[mailto_list,]
mail_host="smtp.126.com" #设置服务器
msg = MIMEMultipart()
msg['Subject'] = "主题" #主题
msg['From'] = mail_user
msg['To'] = mailto_list
#正文
#<img src="cid:image1">为图片显示位置
strstr="""
<html>
<head>正文</head>
<body>
<h1>Hello</h1>
<h2>你们好</h2>
</body>
</html>
"""
htm=MIMEText(strstr,'html','utf-8') #邮件类型设置为html
msg.attach(htm)
server = smtplib.SMTP()
server.connect(mail_host) #连接smtp邮件服务器
server.login(mail_user,mail_pass) #登录
server.sendmail(mail_user, to_list, msg.as_string()) #发送
server.close() #关闭
3、带附件的邮件
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
mail_user="xxxx@126.com" #发送邮件的邮箱
mail_pass="xxxxxxx" #口令
mailto_list="xxxxx@qq.com" #接收邮件的邮箱
to_list=[mailto_list,]
mail_host="smtp.126.com" #设置服务器
msg = MIMEMultipart()
msg['Subject'] = "主题" #主题
msg['From'] = mail_user
msg['To'] = mailto_list
#文字部分
strstr="Hello" #文字内容
att = MIMEText(strstr,'plain','utf-8')
msg.attach(att)
#附件
att = MIMEApplication(open('E:\111.txt','rb').read()) #你要发送的附件地址
att.add_header('Content-Disposition', 'attachment', filename="222.txt") #filename可随意取名
msg.attach(att)
server = smtplib.SMTP()
server.connect(mail_host) #连接smtp邮件服务器
server.login(mail_user,mail_pass) #登录
server.sendmail(mail_user, to_list, msg.as_string()) #发送
server.close() #关闭
4、正文显示图片的邮件
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
mail_user="xxxxx@126.com" #发送邮件的邮箱
mail_pass="xxxxxx" #口令
mailto_list="xxxxxx@qq.com" #接收邮件的邮箱
to_list=[mailto_list,]
mail_host="smtp.126.com" #设置服务器
msg = MIMEMultipart()
msg['Subject'] = "主题" #主题
msg['From'] = mail_user
msg['To'] = mailto_list
#正文
#<img src="cid:image1">为图片显示位置
strstr="""
<html>
<head>正文图片</head>
<body>
<p>Hello<br>
你们好<br>
<br><img src="cid:image1"></br>
</p>
</body>
</html>
"""
htm=MIMEText(strstr,'html','utf-8')
msg.attach(htm)
image = MIMEImage(open("F:\111.jpg",'rb').read())
image.add_header('Content-ID','<image1>')
msg.attach(image)
server = smtplib.SMTP()
server.connect(mail_host)
server.login(mail_user,mail_pass)
server.sendmail(mail_user,mailto_list,msg.as_string())
server.quit()