python 3.5.4 正确 发送邮件 示例
在学习Python的过程中,对于发送附件的试验,一下代码发送了三种不同类型的附件(TXT、XLSL,PNG),可以正常运行:
代码如下:
#############################正文##################
#!usr/bin/python3
#-*-coding=UTF-8-*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
import datetime
import string
dt = datetime.datetime.now()
str_time = dt.strftime('%Y-%m-%d %H:%M:%S')
# #发送方邮件地址
sender = 'XXX@163.com'
#发送方邮件设置的授权码
pwd = 'XXX'#填入发送方邮箱的授权码
receivers = 'XXX@126.com'
#创建一个带附件的实例
message = MIMEMultipart()
#邮件收件人、发件人信息
#message = MIMEText('这是我使用python发送的邮件','plain', 'utf-8')
message['To'] = receivers #'聊天记录' #Header('聊天记录','utf-8')
message['From'] = sender #'yj 和 段洪亮' #Header('yj 和 XXXX','utf-8')
#邮件的标题
subject = 'Python SMTP 最新 邮件测试(含附件)' + ' 发送时间: '+ str_time
#message['Subject'] = subject #可以不设置编码
message['Subject'] = Header(subject,'utf-8')#也可以设置编码
#邮件的正文内容
message.attach(MIMEText(str_time+'这是Python 邮件发送测试 正文内容部分','plain','utf-8'))
#构建第一个文本附件
att1 = MIMEText(open('data.txt','rb').read(),'base64','utf-8')
att1['Content-Type'] = 'application/octet-stream'
att1['Content-Disposition'] = 'attachment;filename = data.txt'
message.attach(att1)
#构建第二个图片附件
#先定义一个读取图片的函数
def addimg(src_path):
fp = open(src_path,'rb')
msgImg = MIMEImage(fp.read())
fp.close()
return msgImg
message.attach(addimg('pic1.png'))
#构建第三个XLSX附件
att3 = MIMEText(open('data.xlsx','rb').read(),'xls','gb2312')
att3['Content-Type'] = 'application/octet-stream'
att3['Content-Disposition'] = 'attachment;filename=data.xlsl'
message.attach(att3)
try:
smtpObj = smtplib.SMTP_SSL('smtp.163.com', 465)
smtpObj.login(sender, pwd)
smtpObj.sendmail(sender,receivers,message.as_string())
print('邮件发送成功!')
except smtplib.SMTPException as e:
print('邮件发送失败,失败原因:',e)
#############################结束##################
本文提供了一个使用Python 3.5.4发送带有多种类型附件(包括TXT、XLSX和PNG文件)的电子邮件的完整示例代码。该示例展示了如何通过163邮箱服务利用SMTP协议来构造和发送含有文本、表格数据和图片附件的复杂邮件。
4436

被折叠的 条评论
为什么被折叠?



