python发送邮件,各邮件服务商都有smtp服务器,但是注册完邮箱后呢,需要去开启pop3/smtp服务。国内的邮箱基本上都需要第三方登录授权码,在python代码中,登录密码就要替换成授权码。国人的东西,什么都是管控的,因为咱中国人,都太聪明而且无节制。我这里用的是qq邮箱。
1,纯文本格式:
1 ''' 2 #利用python发送普通的文字邮件 3 #内建库 4 smtplib,发送邮件的 5 email处理文字的 6 ''' 7 import smtplib 8 from smtplib import SMTP_SSL 9 from email.mime.text import MIMEText #处理邮件文本 10 from email.mime.multipart import MIMEMultipart #构造构建主体 11 from email.header import Header #处理邮件头 12 13 #定义登录信息 14 server = 'smtp.qq.com' #smtp服务器地址 15 user = 'xxxx@qq.com' #登录smtp服务器的用户名 16 pwd = '授权码字符串' #这里不要用邮箱登录密码,会出现验证错误,要用授权码 17 18 #定义发件人和收件人 19 sender = 'xxx@qq.com' #发件人 20 receiver = 'xxx@outlook.com' #收件人 21 22 #定义邮件主题和内容 23 title = 'Python测试邮件' 24 content = '这是一封来自python的测试邮件,详情访问https://www.python.org' 25 26 #开始构造邮件 27 msg = MIMEMultipart() #构造邮件 28 msg['Subject'] = Header(title, 'utf-8') #邮件主题 29 msg['From'] = sender #发件人 30 msg['To'] = receiver #收件人 31 msg.attach(MIMEText(content, 'plain', 'utf-8')) #邮件正文,以plain格式发送,我习惯叫打包内容 32 33 #开始登录邮箱 34 smtp = SMTP_SSL(server) #以ssl的方式登录邮箱 35 smtp.login(user, pwd) #开始登录 36 smtp.sendmail(sender, receiver, msg.as_string()) #开始发送邮件 37 smtp.quit() #退出邮件服务器
2,HTML格式: