email搭配smtplib编辑发送邮件
上一期写了如何使用smtplib模块进行发送邮件,本期将讲述email模块进行邮件的内容编辑。
首先导入模块
from email.header import Header
from email.mime.text import MIMEText
实例化一个MIMEText邮件对象,该对象需要写进三个参数,分别是邮件正文,文本格式和编码。
message = MIMEText(content,‘plain’,‘utf-8’)
#content 内容 plain 文本格式 utf-8 编码方式
#content 可使用input()进行输入内容
编写邮件的开头信息,例如:发件人地址,收件人地址,主题。
message[‘Subject’] = Header(subject)
message[‘From’] = Header(from_addr)
message[‘To’] = Header(to_addr)
#subject 主题 ,from_addr 发件人地址 ,to_addr收件人地址
即可发送邮件
server.sendmail(from_addr, to_addr, message.as_string())
as_string()表示发送的为文本文件
结合上一期的smtplib就可以发送邮件了,下面是一个完整的源代码
from email.mime.text
import MIMETextfrom email.header
import Headerimport smtplib
#发信方的信息:发信邮箱,发信授权码
from_addr = input('输入登录邮箱')
password = '写你自己的授权码'
#收信邮箱
to_addr = input('输入收件邮箱:')
#发信服务器
smtp_server = 'smtp.qq.com'
subject = input('输入邮件主题:')
text = input('输入发送内容:')
message = MIMEText(text,'plain','utf-8')
#From 发件人地址 To收件人地址 Subject主题
message['From'] = Header(from_addr)
message['To'] = Header(to_addr)
message['Subject'] = Header(subject)
server = smtplib.SMTP_SSL(smtp_server)
# qq邮箱的端口是ssl加密server.connect(smtp_server,465)#发送邮件服务器:smtp.qq.com,使用SSL,端口号465或587 接收邮件服务器:imap.qq.com,使用SSL,端口号993
server.login(from_addr, password)
#用户名和授权码
try:
server.sendmail(from_addr, to_addr, message.as_string())
print('恭喜,发送成功')
except:
print('发送失败请重试')
#sendmail()方法需要三个参数:发件人,收件人和邮件内容。server.quit()#退出服务器