Python SMTP 发送带附件电子邮件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python SMTP 发送带附件电子邮件相关的知识,希望对你有一定的参考价值。
起始于对现有工作的内容进行部分重复工作的释放,花费了两周的时间调试了完全可能自己吼得住看得懂能实现目标的代码,如标题所说,本代码主要用户带附件的电子邮件的发送;
对于代码大家只需要修改下文件路径,邮箱地址即可运行,我这边主要是结合navicat数据导出之后+此发送邮件的代码,做成定时任务,让程序每天按时执行,大家就不需要再每天去导数据了,让程序来完成即可,不是有句话怎么说来着:懒人自动化 人越懒才会去想着怎么去做成自动化 安于现状的往往不会有很多的想法
说了这么多废话,直接给大家看下面的代码:
# encoding: utf-8
import smtplib
from datetime import datetime
import os
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
HOST = ‘smtp.163.com‘
SUBJECT = u‘标题内容‘
To = ‘[email protected],[email protected]‘ #收件人邮箱
From = ‘[email protected]‘ #发件人邮箱
msg = MIMEMultipart(‘related‘)
msgtext= MIMEText("<font>你好,<br> 数据详见附件,请查收!</font>","html","utf-8")
msg.attach(msgtext)
# 创建一个MIMEText对象,附加,xlsx文档
#file_name = os.path.join(‘xxxx‘, ‘mail.txt‘)
time = datetime.today().strftime(‘%Y-%m-%d‘)
# file_name = ‘/home/test/db_%s.sql‘ % datetime.today().strftime(‘%Y-%m-%d‘)
attach = MIMEText(open(‘/home/test/db_%s.sql‘ % time, ‘rb‘).read(), ‘base64‘, ‘utf-8‘)
attach[‘Content-Type‘] = ‘application/octet-stream‘
attach[‘Content-Disposition‘] = (u‘attachment; filename="db_%s.sql"‘ % time).encode(‘utf-8‘)
msg.attach(attach)
msg[‘Subject‘] = SUBJECT
msg[‘From‘] = From
msg[‘To‘] = To
try:
server = smtplib.SMTP()
server.connect(HOST, ‘25‘)
# server.starttls()
server.login(‘登录邮箱地址‘, ‘授权码‘)
server.sendmail(From, To.split(‘,‘), msg.as_string())
server.quit()
print(u‘邮件发送成功!‘)
except Exception, e:
print ‘失败‘ + str(e)
写成这样一个完整的可用代码,中间过程不易,也希望能给需要的人提供帮助
版权声明:本文由作者原创,未经允许不得转载 如有问题可联系本人进行咨询,qq:996551709 备注:博客园
以上是关于Python SMTP 发送带附件电子邮件的主要内容,如果未能解决你的问题,请参考以下文章