python 发送邮件
发送邮件使用到两个模块 smtplib 发送邮件和 email 封装邮件,这两个模块都是Python自带的。
先看一个简单的邮件的发送(无附件的text文本的发送)
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText sender = "lilyxiaoyy@163.com" # 发件人 to_lst = ["474852639@qq.com", "lilyxiaoyy@126.com", "lilyxiaoyy@163.com"] # 收件人 # 准备email email = MIMEMultipart() email["Subject"] = "明天天气晴!" # 标题 email["From"] = sender # 发件人 email["To"] = ",".join(to_lst) # 收件人 # 邮件正文 text = MIMEText("明天去逛街啊!", _subtype="plain", _charset="utf-8") email.attach(text) # 发送邮件 smtp = smtplib.SMTP() smtp.connect(host="smtp.163.com") # 连接smtp服务器 smtp.login(user=sender, password="chrdw13579") # 登录 不是邮箱密码 是客户端授权密码 smtp.sendmail(sender, to_lst, email.as_string()) # 发送邮件 print("发送成功!")
接下来,看带附件的邮件怎么发送?
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.application import MIMEApplication sender = "lilyxiaoyy@163.com" # 发件人 to_lst = ["xiaoyy@ipmotor.net", "474852639@qq.com", "lilyxiaoyy@126.com", "lilyxiaoyy@163.com"] # 收件人 # 准备email email = MIMEMultipart() email["Subject"] = "明天天气晴!" # 标题 email["From"] = sender # 发件人 email["To"] = ",".join(to_lst) # 收件人 # 邮件正文 text = MIMEText("明天去逛街啊!", _subtype="plain", _charset="utf-8") email.attach(text) # 附件 att1 = MIMEApplication(open("08. 并发编程.pdf", mode="rb").read()) att1.add_header("Content-disposition", "attachment", filename="08. 并发编程.pdf") email.attach(att1) att2 = MIMEApplication(open("09. mysql.pdf", mode="rb").read()) att2.add_header("Content-disposition", "attachment", filename="09. mysql.pdf") email.attach(att2) # 发送邮件 smtp = smtplib.SMTP() smtp.connect(host="smtp.163.com") # 连接smtp服务器 smtp.login(user=sender, password="chrdw13579") # 登录 不是邮箱密码 是客户端授权密码 smtp.sendmail(sender, to_lst, email.as_string()) # 发送邮件 print("发送成功!")
最后看一个邮件内容带图片的邮件怎么发送?
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.application import MIMEApplication from email.mime.image import MIMEImage sender = "lilyxiaoyy@163.com" # 发件人 to_lst = ["xiaoyy@ipmotor.net", "474852639@qq.com", "lilyxiaoyy@126.com", "lilyxiaoyy@163.com"] # 收件人 # 准备email email = MIMEMultipart() email["Subject"] = "明天天气晴!" # 标题 email["From"] = sender # 发件人 email["To"] = ",".join(to_lst) # 收件人 # 邮件正文 text = MIMEText("明天去逛街啊!花<img src='cid:flower'/>", _subtype="html", _charset="utf-8") email.attach(text) # 附件 att1 = MIMEApplication(open("08. 并发编程.pdf", mode="rb").read()) att1.add_header("Content-disposition", "attachment", filename="08. 并发编程.pdf") email.attach(att1) att2 = MIMEApplication(open("09. mysql.pdf", mode="rb").read()) att2.add_header("Content-disposition", "attachment", filename="09. mysql.pdf") email.attach(att2) # 加载图片 img = MIMEImage(open("flower.jpg", "rb").read()) img.add_header("Content-ID", "flower") # 对应cid email.attach(img) # 发送邮件 smtp = smtplib.SMTP() smtp.connect(host="smtp.163.com") # 连接smtp服务器 smtp.login(user=sender, password="chrdw13579") # 登录 不是邮箱密码 是客户端授权密码 smtp.sendmail(sender, to_lst, email.as_string()) # 发送邮件 print("发送成功!")
浙公网安备 33010602011771号