用Python实现一个简单的能够发送带附件的邮件程序的教程
2017-09-20 21:39
891 查看
原文:http://www.jb51.net/article/63678.htm
基本思路就是,使用MIMEMultipart来标示这个邮件是多个部分组成的,然后attach各个部分。如果是附件,则add_header加入附件的声明。
在python中,MIME的这些对象的继承关系如下。
MIMEBase
|-- MIMENonMultipart
|-- MIMEApplication
|-- MIMEAudio
|-- MIMEImage
|-- MIMEMessage
|-- MIMEText
|-- MIMEMultipart
一般来说,不会用到MIMEBase,而是直接使用它的继承类。MIMEMultipart有attach方法,而MIMENonMultipart没有,只能被attach。
MIME有很多种类型,这个略麻烦,如果附件是图片格式,我要用MIMEImage,如果是音频,要用MIMEAudio,如果是word、excel,我都不知道该用哪种MIME类型了,得上google去查。
最懒的方法就是,不管什么类型的附件,都用MIMEApplication,MIMEApplication默认子类型是application/octet-stream。
application/octet-stream表明“这是个二进制的文件,希望你们那边知道怎么处理”,然后客户端,比如qq邮箱,收到这个声明后,会根据文件扩展名来猜测。
下面上代码。
假设当前目录下有foo.xlsx/foo.jpg/foo.pdf/foo.mp3这4个文件。
?
基本思路就是,使用MIMEMultipart来标示这个邮件是多个部分组成的,然后attach各个部分。如果是附件,则add_header加入附件的声明。
在python中,MIME的这些对象的继承关系如下。
MIMEBase
|-- MIMENonMultipart
|-- MIMEApplication
|-- MIMEAudio
|-- MIMEImage
|-- MIMEMessage
|-- MIMEText
|-- MIMEMultipart
一般来说,不会用到MIMEBase,而是直接使用它的继承类。MIMEMultipart有attach方法,而MIMENonMultipart没有,只能被attach。
MIME有很多种类型,这个略麻烦,如果附件是图片格式,我要用MIMEImage,如果是音频,要用MIMEAudio,如果是word、excel,我都不知道该用哪种MIME类型了,得上google去查。
最懒的方法就是,不管什么类型的附件,都用MIMEApplication,MIMEApplication默认子类型是application/octet-stream。
application/octet-stream表明“这是个二进制的文件,希望你们那边知道怎么处理”,然后客户端,比如qq邮箱,收到这个声明后,会根据文件扩展名来猜测。
下面上代码。
假设当前目录下有foo.xlsx/foo.jpg/foo.pdf/foo.mp3这4个文件。
?
msg = MIMEMultipart() |
相关文章推荐
- 用Python实现一个简单的能够发送带附件的邮件程序的教程
- 使用python中的smtplib库,写一个简单的发送qq邮件程序,速成!!
- python发送邮件的一个简单实现
- Python实现的简单发送邮件脚本分享
- python学习笔记:"爬虫+有道词典"实现一个简单的英译汉程序
- 用Python实现一个简单的多线程TCP服务器的教程
- C#真他妈神奇,一个函数都不用写就能实现一个简单的邮件发送工具
- 研究学习VC环境下带附件邮件发送程序的实现
- 使用Ruby编写发送邮件的程序的简单教程
- Python发送以整个文件夹的内容为附件的邮件的教程
- 一个python的邮件发送脚本,自动,定时,可以附件发送,抄送
- Python发送以整个文件夹的内容为附件的邮件的教程
- 一个简单的基于System.Web.Mail的ASP.Net邮件发送程序
- loner_li web版 简单的发送邮件功能实现(带上传附件)
- 用Python实现一个简单的能够上传下载的HTTP服务器
- asp.net使用smtp协议实现简单的发送邮件(支持附件)
- 一个python的邮件发送脚本,自动,定时,可以附件发送,抄送,附有说明文件 (本脚本是python的2.7.x环境下可用)
- Python实现的简单发送邮件脚本分享
- 使用Python发送邮件附件以定时备份MySQL的教程
- 用Python实现在Linux环境发送带附件的邮件,支持文本/html格式