Python基础 9 smtplib模块发邮件
1、smtplib模块的使用规范
# smtplib 用于邮件的发信动作 import smtplib # 发信方的信息:发信邮箱,QQ邮箱授权码 from_addr = 'xxx@qq.com' password = '你的授权码数字' # 收信方邮箱 to_addr = 'xxx@qq.com' # 发信服务器 smtp_server = 'smtp.qq.com' # 开启发信服务,这里使用的是加密传输 server = smtplib.SMTP_SSL() server.connect(smtp_server,465) # 登录发信邮箱 server.login(from_addr, password) # 发送邮件 server.sendmail(from_addr, to_addr, msg.as_string()) # 关闭服务器 server.quit()
2、完整版发送邮件流程
import smtplib
# smtplib 用于邮件的发信动作
from email.mime.text import MIMEText
# email 用于构建邮件内容
from email.header import Header
# 用于构建邮件头
import csv
# 引用csv模块,用于读取邮箱信息
# 发信方的信息:发信邮箱,QQ邮箱授权码
# 方便起见,你也可以直接赋值
from_addr = input('请输入登录邮箱:')
password = input('请输入邮箱授权码:')
# 发信服务器
smtp_server = 'smtp.qq.com'
# 邮件内容
text='''亲爱的学员,你好!
我是吴枫老师,能遇见你很开心。
希望学习python对你不是一件困难的事情!
人生苦短,我用Python
'''
# 待写入csv文件的收件人数据:人名+邮箱
# 记得替换成你要发送的名字和邮箱
data = [['wufeng ', 'wufeng@qq.com'],['kaxi', 'kaxi@qq.com']]
# 写入收件人数据
with open('to_addrs.csv', 'w', newline='') as f:
writer = csv.writer(f)
for row in data:
writer.writerow(row)
# 读取收件人数据,并启动写信和发信流程
with open('to_addrs.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
to_addrs=row[1]
msg = MIMEText(text,'plain','utf-8')
msg['From'] = Header(from_addr)
msg['To'] = Header(to_addrs)
msg['Subject'] = Header('python test')
server = smtplib.SMTP_SSL()
server.connect(smtp_server,465)
server.login(from_addr, password)
server.sendmail(from_addr, to_addrs, msg.as_string())
# 关闭服务器
server.quit()
3、发送邮件完整版的异常处理
try:
server.sendmail(from_addr, to_addrs, msg.as_string())
print('恭喜,发送成功')
except:
print('发送失败,请重试')
4、多形式说明,上面内容只是发送文本&html的邮件
#文本&HTML格式 from email.mime.text import MIMEText #图片格式邮件 from email.mime.image import MIMEImage #综合格式邮件&附件 from email.mime.multipart import MIMEMultipart


