96SEO 2026-02-19 18:55 16
python可以发送纯文本邮件(HTML邮件)、带附件的邮件、以及图片、音频的邮件等

连接远程smtp方法host为远程主机地址port为smtp端口默认25;#
如SMTP.connect(smtp.163.com,25)smtp.starttls()
开启安全传输模式smtp.login(testarcvideo.com,pwd)
)smtp.login(testarcvideo.com,pwd)
打印出和SMTP服务器交互的所有信息。
smtp.sendmail(FROM,
断开smtp连接smtp中sendmail方法:SMTP.sendmail(
是字符串表示邮件。
我们知道邮件一般由标题发信人收件人邮件内容附件等构成发送邮件的时候要注意msg
通过邮件传输简单的文本已经无法满足我们的需求比如我们时常会定制业务质量报表在邮件主体中会包含
HTML、图像、声音以及附件格式等MIMEMultipurpose
Extensions多用途互联网邮件扩展作为一种新的扩展邮件格式很好地补充了这一点。
示例:msg.add_header(Content-ID,imgid)
设置图片ID【图片在正文中可用】msg.add_header(Content-Disposition,attachment,filenametest.xlsx)
为附件添加标题(没有这行,附件名称乱码)msg.add_header(Content-Disposition,attachment,filename(utf-8,,中文标题))
0)msg_img.add_header(Content-Disposition,
可以使用append()方法追加到标题charset指定字符集
)附加工具email.utilsemail.utils.localtime(dtNone)返回当前时间dt参数为datetime实例email.utils.formataddr(pair,charsetutf-8)pair是一个元祖或列表,返回分割的标题与地址
plain普通文本正文的话一般msg的类型可以是MIMEText
如果是多个的话就都添加到MIMEMultipartmsg类型就变为MIMEMultipart。
将MIMEText对象或MIMEImage对象添加到MIMEMultipart对象中。
MIMEMultipart对象代表邮件本身MIMEText对象或MIMEImage对象代表邮件正文。
以上的构造的文本超文本附件图片都可以添加到MIMEMultipart(mixed)中
_params是一个键值字典参数直接传递给Message.add_header
attachfile_base.add_header(Content-Disposition,
attachfile_base.add_header(Content-Disposition,
.encode(UTF-8))encoders.encode_base64(attachfile_base)
email.mime.multipart.MIMEMultipart(
指定要添加到Content-type:multipart/subtype
构建带附件的邮件(向上兼容,如果一个邮件有纯文本正文,超文本正文,内嵌资源,附件,则选择mixed类型)
_subparts是有效负载的一系类初始部分可以使用attach()方法将子部件附加到消息中。
email.mime.application.MIMEApplication(
_encoderemail.encoders.encode_base64,
_encoder是一个可调用函数它执行传输数据的实际编码使用set_payload()将有效载荷改为编码形式默认编码位base64,可使用email.encoders模块查看内置编码表。
)attachfile.add_header(Content-Disposition,
filenamefilename)msg.attach(attachfile)
open(yishengsuoai.mp3,rb).read()
msgaudio.add_header(Content-Disposition,attachment,filenametext.mp3)
MIMENonMultipart中的一个子类,创建包含图片数据的邮件体
指定一个函数内部编码默认为email.encoders.encode_base64默认为base64编码
msgImage.add_header(Content-ID,imgid)
为图片对象拓展标题字段和值msg.attach(msgImage)
MIMENonMultipart中的一个子类创建包含文本数据的邮件体
html类型的字符串。
发送HTML格式的时候修改为html但同时要求msg的内容也是html的格式【注意html格式的就是放在MIMEText中的】
(hello.text,plain,utf-8)msg[Subject]
抄送#注意发送以上构造的邮件内容要使用as_string将构造的邮件内容转换为string形式。
msg.as_string())print(发送成功)except:
open(/Users/benmu/Desktop/库里.jpg,
open(os.getcwd()/a4.jpg,rb).read()
MIMEImage(img_file)#没有下边2行接收邮件端的附件图片不能正常显示
msg_img.add_header(Content-Disposition,
#为附件添加标题(没有这行,附件名称乱码)msg_img.add_header(Content-ID,
msg.as_string())print(发送成功)except:print(发送失败)
###xlsx类型的附件【筛选、固定宽度、冻结首行多sheet页这些
open(/Users/benmu/Desktop/挂数200条.xlsx,
改为挂数200条.csv也可以xlsx.add_header(Content-Disposition,
application/octet-streammes.attach(xlsx)或#
读取xls文件作为附件open()要带参数rb使文件变成二进制格式,从而使base64编码产生作用否则附件打开乱码
open(/Users/benmu/Desktop/挂数200条.xlsx,
)att.add_header(Content-Disposition,attachment,filename挂数200条.xls)att[Content-Type]
application/vnd.ms-excelmes.attach(att)###
open(/Users/benmu/Desktop/库里.jpg,
)jpgpart.add_header(Content-Disposition,
open(/Users/benmu/Desktop/库里.jpg,
MIMEImage(fp.read())fp.close()msgImage.add_header(Content-Disposition,
filename库里.jpg)mes.attach(msgImage)###
MIMEApplication(open(/Users/benmu/Desktop/大数据时代下数据可视化技术.m4a,
rb).read())mp3part.add_header(Content-Disposition,
filename大数据时代下数据可视化技术.m4a)mes.attach(mp3part)####带“多个”附件#####
MIMEText(open(/Users/benmu/Desktop/test.txt,
application/octet-streamatt_annex1[Content-Disposition]
filenametest.txtmes.attach(att_annex1)#
MIMEText(open(/Users/benmu/Desktop/runoob.txt,
application/octet-streamatt_annex2[Content-Disposition]
filenamerunoob.txtmes.attach(att_annex2)
#os.listdir()返回指定文件夹下的所有文件和文件夹,保存到列表中sender
过滤掉以.DS_Store结尾的文件【不知哪来的】#print(file_name)
必须是使用MIMEBasepart.set_payload(open(file,
rb).read())encoders.encode_base64(part)part.add_header(Content-Disposition,
smtplib.SMTP(smtp.163.com,25)smtp.login(sender,
mes.as_string())print(邮件发送成功)except
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback