Python之SMTP发送邮件
2017-07-12 10:52
591 查看
本文通过实例讲解smtplib的使用,主要介绍进行文本格式、HTML格式和带附件的邮件发送。
1、导入模块
import smtplib
2、创建对象
smtp = smtplib.SMTP([host [, port [, localhost]]] )
# 参数说明
# host: smtp服务地址,例如126邮箱的是:smtp.126.com
# port: smtp服务端口
# localhost: 如果你的smtp服务在本机,则只需指定localhost即可
3、发送邮件函数
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
# 参数说明
# from_addr: 邮件发送地址
# to_addrs: 邮件接收地址列表
# msg: 邮件内容
# mail_options, rcpt_options 可选参数,暂时不需要了解
发送文本邮件实例
发送HTML邮件实例
# -*- coding:utf-8 -*-
__author__ = 'joe'
import smtplib
from email.mime.text import MIMEText
from email.header import Header
if __name__ == "__main__":
print("001:发送HTML邮件示例")
# 邮件发送者
sender = "joe@163.com"
# 邮件接收地址列表
# 请将xxx改为你的163邮箱名或整个改为你的目标接收邮箱地址
receivers = "xxx@163.com"
# 发送内容构建
# text标识发送内容为文本格式
msgHTML = MIMEText("<p>Python 发送邮件测试,正文内容如下。</p><a href='http://blog.csdn.net/shandong_chu'>CSDN博客</a>>",
"html",
"utf-8")
msgHTML["From"] = "joe@163.com"
msgHTML["To"] = receivers
# 构建邮件标题
msgHTML["Subject"] = Header("Python 发送HTML邮件标题", "utf-8")
# smtp服务
smtpserver = "smtp.163.com"
smtpport = 25
# 发送人邮件用户名或专用于smtp账户用户名
username = "joe@163.com"
# 发送人邮件密码或专用于smtp账户的密码
password = "521521"
# 构建smtp对象
smtp = smtplib.SMTP()
# 连接到smtp服务
con = smtp.connect(smtpserver, smtpport)
print("002:连接结果: ", con)
# 登录smtp服务
login = smtp.login(username, password)
print("003:登录结果:", login)
# 发送邮件
print(receivers)
#发送HTML格式的邮件
res = smtp.sendmail(sender, receivers, msgHTML.as_string())
print("004:邮件发送结果: ", res)
# 退出
smtp.quit()
print("005:send email finish")
发送带有附件的邮件实例
总结:
1、构建文本和html格式的邮件使用MIMEText构建,使用plain标识文本内容格式,使用html标识html内容格式
2、对于附件格式则需使用MIMEMultipart
1、导入模块
import smtplib
2、创建对象
smtp = smtplib.SMTP([host [, port [, localhost]]] )
# 参数说明
# host: smtp服务地址,例如126邮箱的是:smtp.126.com
# port: smtp服务端口
# localhost: 如果你的smtp服务在本机,则只需指定localhost即可
3、发送邮件函数
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
# 参数说明
# from_addr: 邮件发送地址
# to_addrs: 邮件接收地址列表
# msg: 邮件内容
# mail_options, rcpt_options 可选参数,暂时不需要了解
发送文本邮件实例
# -*- coding:utf-8 -*- __author__ = 'joe' import smtplib from email.mime.text import MIMEText from email.header import Header if __name__ == "__main__": print("001:发送文本邮件示例") # 邮件发送者 sender = "joe@163.com" # 邮件接收地址列表 # 请将xxx改为你的163邮箱名或整个改为你的目标接收邮箱地址 receivers = "xxx@163.com" # 发送内容构建 # text标识发送内容为文本格式 msgTEXT = MIMEText("Python 发送邮件测试,正文内容如下。", "plain", "utf-8") msgTEXT["From"] = "joe@163.com" msgTEXT["To"] = receivers # 构建邮件标题 msgTEXT["Subject"] = Header("Python 发送文本邮件标题", "utf-8") # smtp服务 smtpserver = "smtp.163.com" smtpport = 25 # 发送人邮件用户名或专用于smtp账户用户名 username = "joe@163.com" # 发送人邮件密码或专用于smtp账户的密码 password = "521521" # 构建smtp对象 smtp = smtplib.SMTP() # 连接到smtp服务 con = smtp.connect(smtpserver, smtpport) print("002:连接结果: ", con) # 登录smtp服务 login = smtp.login(username, password) print("003:登录结果:", login) # 发送邮件 print(receivers) #发送文本格式的邮件 res = smtp.sendmail(sender, receivers, msgTEXT.as_string()) print("004:邮件发送结果: ", res) # 退出 smtp.quit() print("005:send email finish")
发送HTML邮件实例
# -*- coding:utf-8 -*-
__author__ = 'joe'
import smtplib
from email.mime.text import MIMEText
from email.header import Header
if __name__ == "__main__":
print("001:发送HTML邮件示例")
# 邮件发送者
sender = "joe@163.com"
# 邮件接收地址列表
# 请将xxx改为你的163邮箱名或整个改为你的目标接收邮箱地址
receivers = "xxx@163.com"
# 发送内容构建
# text标识发送内容为文本格式
msgHTML = MIMEText("<p>Python 发送邮件测试,正文内容如下。</p><a href='http://blog.csdn.net/shandong_chu'>CSDN博客</a>>",
"html",
"utf-8")
msgHTML["From"] = "joe@163.com"
msgHTML["To"] = receivers
# 构建邮件标题
msgHTML["Subject"] = Header("Python 发送HTML邮件标题", "utf-8")
# smtp服务
smtpserver = "smtp.163.com"
smtpport = 25
# 发送人邮件用户名或专用于smtp账户用户名
username = "joe@163.com"
# 发送人邮件密码或专用于smtp账户的密码
password = "521521"
# 构建smtp对象
smtp = smtplib.SMTP()
# 连接到smtp服务
con = smtp.connect(smtpserver, smtpport)
print("002:连接结果: ", con)
# 登录smtp服务
login = smtp.login(username, password)
print("003:登录结果:", login)
# 发送邮件
print(receivers)
#发送HTML格式的邮件
res = smtp.sendmail(sender, receivers, msgHTML.as_string())
print("004:邮件发送结果: ", res)
# 退出
smtp.quit()
print("005:send email finish")
发送带有附件的邮件实例
# -*- coding:utf-8 -*- __author__ = 'joe' import smtplib from email.mime.text import MIMEText from email.header import Header from email.mime.multipart import MIMEMultipart if __name__ == "__main__": print("001:发送带有附件的邮件示例") # 邮件发送者 sender = "joe@163.com" # 邮件接收地址列表 # 请将xxx改为你的163邮箱名或整个改为你的目标接收邮箱地址 receivers = "XXX@163.com" # 发送内容构建 # text标识发送内容为文本格式 msgHTML = MIMEMultipart() msgHTML["From"] = "joe@163.com" msgHTML["To"] = receivers # 构建邮件标题 msgHTML["Subject"] = Header("Python 发送附件邮件标题", "utf-8") # 构建邮件正文内容 msgHTML.attach(MIMEText("Python 发送邮件测试,带有附件", "plain", "utf-8")) # 构造附件,多个附件同理,本例中附件是和脚本放在同一个目录下 attach1 = MIMEText(open("test_mail.py", 'rb').read(), "base64", "utf-8") attach1["Content-Type"] = "application/octet-stream" # 这里filename即附件的显示名字,将会在邮件中显示 attach1["Content-Disposition"] = "attrachment;filename=code.py" # 关联附件到邮件中 msgHTML.attach(attach1) # smtp服务 smtpserver = "smtp.163.com" smtpport = 25 # 发送人邮件用户名或专用于smtp账户用户名 username = "joe@163.com" # 发送人邮件密码或专用于smtp账户的密码 password = "521521" # 构建smtp对象 smtp = smtplib.SMTP() # 连接到smtp服务 con = smtp.connect(smtpserver, smtpport) print("002:连接结果 ",con) # 登录smtp服务 log = smtp.login(username, password) print("003:登录结果 " ,log) # 发送邮件 print(receivers) #发送HTML格式的邮件 res = smtp.sendmail(sender, receivers, msgHTML.as_string()) print("邮件发送结果: ",res) # 退出 smtp.quit() print("005:send email finish")
总结:
1、构建文本和html格式的邮件使用MIMEText构建,使用plain标识文本内容格式,使用html标识html内容格式
2、对于附件格式则需使用MIMEMultipart
相关文章推荐
- python模块之smtplib: 用python发送SSL/TLS安全邮件
- python模块之smtplib: 用python发送SSL/TLS安全邮件
- python模块学习 ---- smtplib 邮件发送
- Python 用SMTP发送邮件
- python模块学习 ---- smtplib 邮件发送
- python模块之smtplib: 用python发送SSL/TLS安全邮件
- Python用smtplib发送邮件
- python模块学习 ---- smtplib 邮件发送(转)
- python模块之smtplib: 用python发送SSL/TLS安全邮件
- 转:python模块学习 ---- smtplib 邮件发送
- python模块之smtplib: 用python发送SSL/TLS安全邮件
- python模块学习 ---- smtplib 邮件发送
- 我的python学习之路----发送邮件(基于smtp)
- python smtp发送邮件
- python模块学习 ---- smtplib 邮件发送
- python模块学习 ---- smtplib 邮件发送
- python - 如何通过GMail发送邮件:smtplib的使用
- Python写的smtp发送邮件脚本
- python email ==> send 发送邮件 :) [smtplib, email 模块]
- 转:python模块学习 ---- smtplib 邮件发送