SMTP是简单邮件传输协议。在python中smtplib模块是对SMTP协议进行了简单封装,能够方便进行邮件传输。
一、Smtplib的使用
基本格式代码为:
import smtplib
# 以qq邮箱为例,SMTP_SSL所需host 和port可以在qq邮箱设置中获取
smtpobj = smtplib.SMTP_SSL("smtp.qq.com", 465)
二、smtplib对象常用方法
smtplib对象常用方法有login、 sendmail、quit、close、verify等。详细介绍如下:
1、login方法
login方法用于根据指定用户名和密码(对于qq邮箱来说是授权码),登录SMTP服务器。
s = smtplib.SMTP_SSL("smtp.qq.com", 465)
uname = "12345677@qq.com"
pword = "ffffffssss" # 邮箱授权码
s.login(uname, pword)
2、sendmail方法
sendmail方法用于发送邮件,涉及基本参数为from(发件人)、to(收件人)和正文。
s = smtplib.SMTP_SSL("smtp.qq.com", 465)
uname = "12345677@qq.com"
pword = "ffffffssss" # 邮箱授权码
s.login(uname, pword)
s.sendmail(uname, msg_to, msg.as_string())
三、邮件正文配置
邮件正文需要引用email包,其中MIMEText模块用于发送文本类型正文,MIMEMultipart模块用于发送HTML类型正文。实例代码如下:
import smtplib
from email.mime.text import MIMEText
import random
uname = "12345677@qq.com"
pword = "ffffffssss" # 邮箱授权码
msg_to = "ssssss@163.com"
content = """
您的验证码是:<h1 style='color:red'>{}</h1>
""".format(random.randint(10000, 99999))
msg = MIMEText(content)
msg["Subject"] = "慕慕笔记验证码"
# 受qq邮箱官方政策更新,From header格式为:“用户名+空格+<+邮箱地址+>”
msg["From"] = "ss <12345677@qq.com>"
msg["To"] = msg_to
if __name__ == '__main__':
s = smtplib.SMTP_SSL("smtp.qq.com", 465)
s.login(uname, pword)
s.sendmail(uname, msg_to, msg.as_string())
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import random
uname = "12345677@qq.com"
pword = "ffffffssss" # 邮箱授权码
msg_to = "ssssss@163.com"
content = """
您的验证码是:<h1 style='color:red'>{}</h1>
""".format(random.randint(10000, 99999))
msg = MIMEMultipart()
msg["Subject"] = "慕慕笔记验证码"
# 受qq邮箱官方政策更新,From header格式为:“用户名+空格+<+邮箱地址+>”
msg["From"] = "ss <12345677@qq.com>"
msg["To"] = msg_to
# 发送html格式的邮件正文
msg.attach(MIMEText(content,"html","utf-8"))
if __name__ == '__main__':
s = smtplib.SMTP_SSL("smtp.qq.com", 465)
s.login(uname, pword)
s.sendmail(uname, msg_to, msg.as_string())