很多工作人员喜欢用办工软件处理文字,然后发送E-mail 时其作为附件。 这其实很不方便,而且完全没有必要。 大量的通知其实没有太多的格式,重要的只是文字内容。 这里说明一下如何将文本内容直接加入到 Email 正文的方法。
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
from cfg import email_cfg
sender = email_cfg['user']
password=email_cfg['passwd']
receivers = [email_cfg['user']]
创建一个带附件的实例,并将附件的内容写入到邮件内容里。
message = MIMEMultipart()
message['From'] = Header("教程", 'utf-8')
message['To'] = Header("Test", 'utf-8')
subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')
cnt =open('xx_test.txt').read()
cnt
'123'
message.attach(MIMEText(cnt, 'plain', 'utf-8'))
添加附件,发送当前目录下的 test.txt
文件。
att1 = MIMEText(open('xx_test.txt', 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename="test.txt"'
message.attach(att1)
发送邮件到指定邮箱,这里接收邮箱与发送的邮箱为同一个邮箱。
try:
smtpObj = smtplib.SMTP_SSL('smtp.163.com',port=465)
smtpObj.login(sender,password)
smtpObj.sendmail(sender, receivers, message.as_string())
print ("邮件发送成功")
smtpObj.quit()
except smtplib.SMTPException:
print ("Error: 无法发送邮件")
邮件发送成功