python 发邮件需要掌握两个模块的用法, smtplib 和 email, 这俩模块是 python 自带的, 只需 import 即可使用. smtplib 模块主要负责发送邮件, email 模块主要负责构造邮件.
smtplib 模块主要负责发送邮件: 是一个发送邮件的动作, 连接邮箱服务器, 登录邮箱, 发送邮件(有发件人, 收信人, 邮件内容).
email 模块主要负责构造邮件: 指的是邮箱页面显示的一些构造, 如发件人, 收件人, 主题, 正文, 附件等.
1.smtplib 模块
smtplib 使用较为简单. 以下是最基本的语法.
导入及使用方法如下:
- import smtplib
- smtp = smtplib.SMTP()
- smtp.connect('smtp.163.com,25')
- smtp.login(username, password)
- smtp.sendmail(sender, receiver, msg.as_string())
- smtp.quit()
说明:
smtplib.SMTP(): 实例化 SMTP()
connect(host,port):
host: 指定连接的邮箱服务器. 常用邮箱的 smtp 服务器地址如下:
新浪邮箱: smtp.sina.com, 新浪 VIP:smtp.vip.sina.com, 搜狐邮箱: smtp.sohu.com,126 邮箱: smtp.126.com,139 邮箱: smtp.139.com,163 网易邮箱: smtp.163.com.
port: 指定连接服务器的端口号, 默认为 25.
login(user,password):
user: 登录邮箱的用户名.
password: 登录邮箱的密码, 像笔者用的是网易邮箱, 网易邮箱一般是网页版, 需要用到客户端密码, 需要在网页版的网易邮箱中设置授权码, 该授权码即为客户端密码.
sendmail(from_addr,to_addrs,msg,...):
from_addr: 邮件发送者地址
to_addrs: 邮件接收者地址. 字符串列表 ['接收地址 1','接收地址 2','接收地址 3',...] 或'接收地址'
msg: 发送消息: 邮件内容. 一般是 msg.as_string():as_string()是将 msg(MIMEText 对象或者 MIMEMultipart 对象)变为 str.
quit(): 用于结束 SMTP 会话.
2.email 模块
email 模块下有 mime 包, mime 英文全称为 "Multipurpose Internet Mail Extensions", 即多用途互联网邮件扩展, 是目前互联网电子邮件普遍遵循的邮件技术规范.
该 mime 包下常用的有三个模块: text,image,multpart.
导入方法如下:
- from email.mime.multipart import MIMEMultipart
- from email.mime.text import MIMEText
- from email.mime.
来源: http://www.bubuko.com/infodetail-2873641.html