Python SMTP发送邮件
- 格式:docx
- 大小:512.78 KB
- 文档页数:10
python使⽤smtplib发送邮件python要实现发送邮件的功能,需要使⽤smtplib库。
1. 过程⼤致如下:1. 建⽴和SMTP邮件服务器的连接# 默认端⼝25smtp = smtplib.SMTP(host, port)# 或者smtp = smtplib.SMTP()smtp.connect(host, port)# 带SSL,默认端⼝465smtp = smtp.SMTP_SSL()smtp.connect(host, port)2. 完成⾝份认证# 对于163⽽⾔,第三⽅客户端登陆使⽤的是授权码⽽不是密码smtp.login(username, password)3. 发送邮件(必须明确发件⼈、收件⼈、主题、内容,⽽抄送⼈、密送⼈、附件、内嵌式图⽚等资源是可选的)smtp.sendmail(from_addr, to_addrs, msg, mail_options=[], rcpt_options=[])4. 结束会话smtp.quit()2. MIME相关知识介绍MIME全称Multipurpose Internet Mail Extensions(多⽤途互联⽹邮件扩展)。
是⼀个互联⽹标准,它扩展了电⼦邮件标准,使其能够⽀持:⾮ASCII字符⽂本;⾮⽂本格式附件(⼆进制、声⾳、图像等);由多部分(multiple parts)组成的消息体;包含⾮ASCII字符的头信息(Header information)此外,web中使⽤的HTTP协议也使⽤了MIMIE的框架,标准被扩展为。
MIME头部信息:MIME版本: ⽬前版本1.0MIME-Version: 1.0内容类型(Content-Type),⽤于指定消息类型。
形式如下:Content-Type: [type]/[subtype]; parametertype有以下形式:Text: ⽂本消息,可以使⽤charset参数指定字符集;Multipart: ⽤于连接消息体的多个部分构成⼀个消息,这些部分可以是不同类型的数据;Application:⽤于传输应⽤程序数据或者⼆进制数据;Message:⽤于包装⼀个E-mail消息;Image:⽤于传输静态图⽚数据;Audio:⽤于传输⾳频数据;Video:⽤于传输动态影像数据,可以是与⾳频编辑在⼀起的视频数据格式常见的⽂件扩展名与Content-Type对应关系如下:⽂件扩展名Content-Type.txt text/plain.html text/html.xhtml application/xhtml+xml.css text/css.js application/javascript.xml application/atom+xml.json application/json.jpg image/jpeg.png image/png.gif image/gif.mp3audio/mpeg3.mp4video/mp4.wav audio/wav.avi video/avi.doc application/msword.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document.xls application/vnd.ms-excel.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.ppt application/vnd.ms-powerpoint.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation.pdf application/pdf.rar application/x-rar-compressed.zip application/x-compressed.tar application/x-tar.gz application/x-compressed.bz2application/x-bzip2表⽰任意⼆进制数据application/octet-stream使⽤HTTP的POST⽅法提交表单application/x-www-form-urlencoded主要⽤于表单提交时伴随⽂件上传的场合multipart/form-dataText默认是text/plain,Application默认是application/octet-stream⽽Multipart默认情况下被看作multipart/mixed。
如何使用邮件代码发送邮件邮件服务器协议(英文:Mail Server Protocol)指的是电子邮件客户端和电子邮件服务器之间进行交互时所遵循的一套规则。
邮件服务器协议定义了客户端和服务器之间的通信方式,包括建立连接、发送和接收数据的方式。
常见的邮件服务器协议包括SMTP、POP3和IMAP。
在本文中,我们将着重介绍如何使用SMTP协议来发送邮件。
SMTP(Simple Mail Transfer Protocol)是一种基于文本的协议,用于电子邮件的传输。
它被广泛用于发送邮件,并且几乎所有的邮件服务器都支持该协议。
使用SMTP协议发送邮件主要需要考虑以下几个步骤:1.配置邮件服务器信息:首先,我们需要获得一个可用的SMTP服务器的地址和端口号。
通常,这些信息可以从你的邮件服务提供商或管理员那里获得。
你还需要获得一个有效的SMTP账号和密码来验证您的身份。
2. 导入所需的模块或库:在编写代码之前,我们需要导入所需的模块或库。
Python中,我们可以使用smtplib库来实现SMTP功能。
3. 建立连接:使用smtplib库的SMTP类,我们可以使用connect(方法来建立与SMTP服务器的连接。
在connect(方法中,我们需要传递SMTP服务器的地址和端口号。
4. 登录验证:在成功连接到SMTP服务器后,我们需要使用登录方法(login()进行身份验证。
在这一步中,我们需要传递SMTP账号和密码。
5.构建邮件内容:接下来,我们需要设置邮件的主题、发件人、收件人等信息,并填充邮件的正文内容。
6. 发送邮件:一旦邮件的内容被设置完毕,我们可以使用sendmail(方法将邮件发送出去。
在sendmail(方法中,我们需要传递发件人地址、收件人地址和邮件的内容。
7. 关闭连接:最后,我们需要使用quit(方法关闭与SMTP服务器的连接。
下面是一个使用Python编写的发送邮件的示例代码:```pythonimport smtplibfrom email.mime.text import MIMEText#配置邮件服务器信息smtp_port = 587smtp_password = "your_password"#建立与SMTP服务器的连接server = smtplib.SMTP(smtp_server, smtp_port)server.starttls#登录验证server.login(smtp_username, smtp_password)#构建邮件内容subject = "Hello"message = "This is a test email!"msg = MIMEText(message)msg["Subject"] = subjectmsg["From"] = sendermsg["To"] = ", ".join(recipients)#发送邮件server.sendmail(sender, recipients, msg.as_string()#关闭连接server.quit```以上代码使用了smtplib库来实现SMTP功能,并使用email库中的MIMEText类来构建邮件内容。
Python实现⾃动发送邮件功能简单邮件传输协议(SMTP)是⼀种协议,⽤于在邮件服务器之间发送电⼦邮件和路由电⼦邮件。
Python提供smtplib模块,该模块定义了⼀个SMTP客户端会话对象,可⽤于使⽤SMTP或ESMTP侦听器守护程序向任何互联⽹机器发送邮件。
SMTP通讯的基本流程可以概括为以下⼏点:1.连接SMTP服务器2.登陆⽤户名和密码3.发送指定邮件内容4.退出SMTP连接⼀、发送纯⽂本格式邮件#coding:utf-8import sysreload(sys)sys.setdefaultencoding('utf8')import smtplibfrom smtplib import SMTPfrom email.mime.text import MIMETextfrom email.header import Header#构造纯⽂本邮件内容msg = MIMEText('hello,send by Python.....','plain','utf-8')#发送者邮箱sender = 'xxxxx@'#发送者的登陆⽤户名和密码user = 'xxxxx@'password = 'xxxxxx'#发送者邮箱的SMTP服务器地址smtpserver = 'xxxx'#接收者的邮箱地址receiver = ['xxxxxx@','xxxxxx@'] #receiver 可以是⼀个listsmtp = smtplib.SMTP() #实例化SMTP对象smtp.connect(smtpserver,25) #(缺省)默认端⼝是25 也可以根据服务器进⾏设定smtp.login(user,password) #登陆smtp服务器smtp.sendmail(sender,receiver,msg.as_string()) #发送邮件,这⾥有三个参数'''login()⽅法⽤来登录SMTP服务器,sendmail()⽅法就是发邮件,由于可以⼀次发给多个⼈,所以传⼊⼀个list,邮件正⽂是⼀个str,as_string()把MIMEText对象变成str。
python邮件messages的用法-回复Python邮件模块中的messages是一个重要的概念,它用于在邮件发送和接收过程中定义和管理邮件的内容。
messages是一种数据结构,用于存储邮件的各种信息,如发件人、收件人、主题、正文、附件等等。
在本文中,我们将一步一步地介绍如何使用Python邮件模块中的messages 来创建、发送和接收电子邮件。
第一步:创建消息对象在Python中,我们可以使用email.message模块的Message类来创建一个邮件消息对象。
首先,我们需要导入相应的模块:pythonimport smtplibfrom email.mime.text import MIMETextfrom email.header import Header然后,我们可以使用MIMEText类来创建一个简单的文本消息:pythonmsg = MIMEText('这是一封测试邮件。
', 'plain', 'utf-8')这里,'这是一封测试邮件。
'是邮件的正文内容,'plain'表示纯文本格式,'utf-8'表示编码方式。
第二步:设置邮件头部信息接下来,我们可以为邮件设置一些头部信息,如主题、发件人、收件人。
使用email.header模块的Header类可以确保头部信息的正确显示:pythonmsg['Subject'] = Header('这是一封测试邮件', 'utf-8')msg['From'] = Header('发件人<sender@example>', 'utf-8')msg['To'] = Header('收件人<receiver@example>', 'utf-8')这里,'这是一封测试邮件'是邮件的主题,'发件人<sender@example>'是发件人的名称和地址,'收件人<receiver@example>'是收件人的名称和地址。
如何使用邮件代码发送邮件使用编程语言发送邮件需要使用到相应的库或模块。
以下是不同编程语言中的示例代码。
1. Python:Python中最常用的库是smtplib和email。
下面是一个使用python 发送邮件的示例代码:```pythonimport smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddrdef send_email(sender_email, sender_password,recipient_email, subject, message):try:msg = MIMEText(message, 'plain') # 创建邮件正文msg['Subject'] = subject # 邮件主题server.starttls( # 启用TLS加密server.sendmail(sender_email, [recipient_email],msg.as_string() # 发送邮件server.quit( # 退出服务器print("邮件发送成功")except Exception as e:print("邮件发送失败:", str(e))#使用示例sender_password = "password"subject = "Example Subject"message = "This is the content of the email."send_email(sender_email, sender_password, recipient_email, subject, message)```2. Java:Java中可以使用JavaMail API来发送邮件。
python发送各类邮件的主要方法已有1人参与python中email模块使得处理邮件变得比较简单,今天着重学习了一下发送邮件的具体做法,这里写写自己的的心得,也请高手给些指点。
一、相关模块介绍发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍:1、smtplib模块smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])SMTP类构造函数,表示与SMTP服务器之间的连接,通过这个连接可以向smtp服务器发送指令,执行相关操作(如:登陆、发送邮件)。
所有参数都是可选的。
host:smtp服务器主机名port:smtp服务的端口,默认是25;如果在创建SMTP对象的时候提供了这两个参数,在初始化的时候会自动调用connect方法去连接服务器。
smtplib模块还提供了SMTP_SSL类和LMTP类,对它们的操作与SMTP基本一致。
smtplib.SMTP提供的方法:SMTP.set_debuglevel(level):设置是否为调试模式。
默认为False,即非调试模式,表示不输出任何调试信息。
SMTP.connect([host[, port]]):连接到指定的smtp服务器。
参数分别表示smpt主机和端口。
注意: 也可以在host参数中指定端口号(如::25),这样就没必要给出port参数。
SMTP.docmd(cmd[, argstring]):向smtp服务器发送指令。
可选参数argstring表示指令的参数。
SMTP.helo([hostname]) :使用"helo"指令向服务器确认身份。
相当于告诉smtp服务器“我是谁”。
SMTP.has_extn(name):判断指定名称在服务器邮件列表中是否存在。
出于安全考虑,smtp服务器往往屏蔽了该指令。
SMTP.verify(address) :判断指定邮件地址是否在服务器中存在。
Django框架中的电子邮件发送和接收处理技巧在Django框架中,电子邮件的发送和接收处理是一个非常重要的功能。
无论是用户注册验证邮件、找回密码邮件,还是系统通知邮件,都需要通过电子邮件来进行信息传递。
本文将介绍一些在Django中处理电子邮件的技巧和注意事项。
1. 配置电子邮件发送设置在Django中,首先需要在settings.py文件中配置电子邮件发送的相关设置。
这些设置包括邮件服务器的地址、端口、用户名、密码等。
可以使用以下代码示例进行配置:```pythonEMAIL_BACKEND ='django.core.mail.backends.smtp.EmailBackend'EMAIL_HOST = 'your_email_host'EMAIL_PORT = your_email_portEMAIL_HOST_USER = 'your_email_username'EMAIL_HOST_PASSWORD = 'your_email_password'EMAIL_USE_TLS = TrueDEFAULT_FROM_EMAIL = 'your_email_address'```2. 发送邮件在Django中发送电子邮件非常简单。
可以使用Django自带的`send_mail`函数进行发送。
以下是一个发送邮件的示例: ```pythonfrom django.core.mail import send_mailsubject = '邮件主题'message = '邮件正文'from_email = '发件人邮箱'recipient_list = ['收件人邮箱1', '收件人邮箱2']send_mail(subject, message, from_email, recipient_list)```在实际使用中,可以根据需要设置邮件的主题、正文、发件人邮箱和收件人邮箱。
Python编程练习题一、基础语法篇1. 编写一个Python程序,输出“Hello, World!”。
2. 计算并输出1+2+3++100的和。
3. 编写一个程序,交换两个变量的值。
4. 输出当前日期和时间。
5. 编写一个判断闰年的程序,输入年份,输出是否为闰年。
6. 输出九九乘法表。
7. 编写一个程序,计算并输出一个整数列表的平均值。
8. 将字符串中的所有小写字母转换为大写字母。
9. 编写一个程序,统计字符串中字母、数字和其他字符的数量。
10. 输出斐波那契数列的前20项。
二、函数与模块篇1. 编写一个函数,计算两个数的最大公约数。
2. 编写一个函数,实现字符串的反转。
3. 编写一个函数,判断一个数是否为素数。
4. 导入math模块,计算并输出e的平方根。
5. 编写一个模块,实现计算圆的面积和周长。
6. 定义一个装饰器,统计函数运行时间。
7. 编写一个器,实现斐波那契数列的。
8. 使用lambda表达式编写一个求两个数最大值的函数。
9. 编写一个递归函数,计算阶乘。
10. 定义一个类,实现一个简单的计算器功能(加、减、乘、除)。
三、列表、元组与字典篇1. 创建一个包含110的整数列表。
2. 输出列表中的最大值和最小值。
3. 将列表中的每个元素乘以2。
4. 删除列表中的偶数。
5. 输出列表中的元素及其索引。
6. 编写一个程序,实现列表的冒泡排序。
7. 创建一个元组,包含姓名、年龄和性别信息。
8. 输出元组中的第二个元素。
9. 将元组转换为列表。
10. 编写一个程序,统计字符串中每个字母的出现次数(使用字典)。
四、文件操作篇1. 编写一个程序,读取文件内容并输出。
2. 将一段文字写入到文件中。
4. 读取一个文本文件,统计其中的单词数量。
5. 编写一个程序,复制一个文件到指定目录。
6. 读取一个CSV文件,并输出其中的数据。
7. 将一个列表写入到JSON文件中。
8. 读取一个JSON文件,并转换为Python对象。
Python发送邮件smtplib.SMTP各报错问题的解决⽅法经测试可⽤的发送邮件代码:import smtplibfrom email.mime.text import MIMEText# 第三⽅ SMTP 服务mail_host = "" # SMTP服务器mail_user = "username" # ⽤户名mail_pass = "passwd" # 密码(这⾥的密码不是登录邮箱密码,⽽是授权码)sender = 'sender_mail@' # 发件⼈邮箱receivers = ['receive_mail@'] # 接收⼈邮箱content = 'Python Send Mail !'title = 'Python SMTP Mail Test' # 邮件主题message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码message['From'] = "{}".format(sender)message['To'] = ",".join(receivers)message['Subject'] = titletry:smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启⽤SSL发信, 端⼝⼀般是465smtpObj.login(mail_user, mail_pass) # 登录验证smtpObj.sendmail(sender, receivers, message.as_string()) # 发送print("mail has been send successfully.")except smtplib.SMTPException as e:print(e)问题解决与注意点:1.报错:Error: A secure connection is requiered(such as ssl)解决:因为邮箱SSL验证的问题,因此把smtplib.SMTP()改成smtplib.SMTP_SSL(),端⼝号为4652.报错:535, b'Error: authentication failed'解决:可能是由于⽤户名不正确,因此代码中的⽤户名应该填写为邮箱地址@前⾯部分,或是在邮箱设置的帐户昵称,如下图昵称Morning 和马赛克部分,都可作为⽤户名3.SMTP服务器可根据发送的邮箱做相应的选择,如代码中使⽤163邮箱则设为mail_host = ""可以改成""、""等等4.代码中的密码mail_pass为授权码,并⾮邮箱密码,授权码⽤于登录第三⽅邮件客户端的专⽤密码。
Python SMTP发送邮件SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
python的smtplib提供了一种很方便的途径发送电子邮件。
它对smtp协议进行了简单的封装。
Python创建SMTP 对象语法如下:import smtplibsmtpObj = smtplib.SMTP([host [, port [, local_hostname]]])参数说明:∙host: SMTP 服务器主机。
你可以指定主机的ip地址或者域名如: ,这个是可选参数。
∙port: 如果你提供了host 参数, 你需要指定SMTP 服务使用的端口号,一般情况下SMTP 端口号为25。
∙local_hostname: 如果SMTP 在你的本机上,你只需要指定服务器地址为localhost 即可。
这里要注意一下第三个参数,msg 是字符串,表示邮件。
我们知道邮件一般由标题,发信人,收件人,邮件内容,附件等构成,发送邮件的时候,要注意msg 的格式。
这个格式就是smtp 协议中定义的格式。
实例以下执行实例需要你本机已安装了支持SMTP 的服务,如:sendmail。
以下是一个使用Python 发送邮件简单的实例:实例#!/usr/bin/python# -*- coding: UTF-8 -*-import smtplib from email.mime.textimport MIMEText from email.headerimport Header sender = 'from@'receivers = ['429240967@']# 接收邮件,可设置为你的QQ邮箱或者其他邮箱# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8') message['From'] = Header("菜鸟教程", 'utf-8')message['To'] = Header("测试", 'utf-8')subject = 'Python SMTP 邮件测试'message['Subject'] = Header(subject, 'utf-8')try:smtpObj = smtplib.SMTP('localhost')smtpObj.sendmail(sender, receivers, message.as_string()) print"邮件发送成功"except smtplib.SMTPException:print"Error: 无法发送邮件"我们使用三个引号来设置邮件信息,标准邮件需要三个头部信息:From, To,和Subject,每个信息直接使用空行分割。
我们通过实例化smtplib 模块的SMTP 对象smtpObj来连接到SMTP 访问,并使用sendmail方法来发送信息。
执行以上程序,如果你本机安装sendmail(邮件传输代理程序),就会输出:$ python test.py邮件发送成功查看我们的收件箱(一般在垃圾箱),就可以查看到邮件信息:如果我们本机没有sendmail 访问,也可以使用其他邮件服务商的SMTP 访问(QQ、网易、Google等)。
实例#!/usr/bin/python# -*- coding: UTF-8 -*-import smtplib from email.mime.textimport MIMEText from email.headerimport Header# 第三方 SMTP 服务mail_host=""#设置服务器mail_user="XXXX"#用户名mail_pass="XXXXXX"#口令sender = 'from@'receivers = ['429240967@'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8') message['From'] = Header("菜鸟教程", 'utf-8')message['To'] = Header("测试", 'utf-8')subject = 'Python SMTP 邮件测试'message['Subject'] = Header(subject, 'utf-8')try:smtpObj = smtplib.SMTP()smtpObj.connect(mail_host, 25)# 25 为 SMTP 端口号smtpObj.login(mail_user,mail_pass)smtpObj.sendmail(sender, receivers, message.as_string())print"邮件发送成功"except smtplib.SMTPException:print"Error: 无法发送邮件"使用Python发送HTML格式的邮件Python发送HTML格式的邮件与发送纯文本消息的邮件不同之处就是将MIMEText中_subtype设置为html。
具体代码如下:实例#!/usr/bin/python# -*- coding: UTF-8 -*-import smtplib from email.mime.textimport MIMEText from email.headerimport Header sender = 'from@'receivers = ['429240967 @']# 接收邮件,可设置为你的QQ邮箱或者其他邮箱mail_msg = """ <p>Python 邮件发送测试...</p> <p><a href="http://w ">这是一个链接</a></p> """message = MIMEText(mail_msg, 'html', 'utf-8')message['From'] = Header("菜鸟教程", 'utf-8')message['To'] = Header("测试", 'utf-8')subject = 'Python SMTP 邮件测试'message['Subject'] = Header(subject, 'utf-8')try:smtpObj = smtplib.SMTP('localhost')smtpObj.sendmail(sender, receivers, message.as_string()) print"邮件发送成功"except smtplib.SMTPException:print"Error: 无法发送邮件"执行以上程序,如果你本机安装sendmail,就会输出:$ python test.py邮件发送成功查看我们的收件箱(一般在垃圾箱),就可以查看到邮件信息:Python 发送带附件的邮件发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送。
实例#!/usr/bin/python# -*- coding: UTF-8 -*-import smtplib from email.mime.textimport MIMEText from email.mime.multipartimport MIMEMultipart from email.headerimport Header sender = 'from@'receivers = ['429240967@']# 接收邮件,可设置为你的QQ邮箱或者其他邮箱#创建一个带附件的实例message = MIMEMultipart()message['From'] = Header("菜鸟教程", 'utf-8')message['To'] = Header("测试", 'utf-8')subject = 'Python SMTP 邮件测试'message['Subject'] = Header(subject, 'utf-8')#邮件正文内容message.attach(MIMEText('这是菜鸟教程Python 邮件发送测试……', 'plain ', 'utf-8'))# 构造附件1,传送当前目录下的 test.txt 文件att1 = MIMET ext(open('test.txt', 'rb').read(), 'base64', 'utf-8')att1["Con tent-Type"] = 'application/octet-stream'# 这里的filename可以任意写,写什么名字,邮件中显示什么名字att1["Content-Disposition"] = 'attachment; filename="test.txt"' message.attach(att1)# 构造附件2,传送当前目录下的 runoob.txt 文件att2 = MIMEText(open('runoob.txt', 'rb').read(), 'base64', 'utf -8')att2["Content-Type"] = 'application/octet-stream'att2["Co ntent-Disposition"] = 'attachment; filename="runoob.txt"'messa ge.attach(att2)try:smtpObj = smtplib.SMTP('localhost')smtpObj.sendmail(sender, receivers, message.as_string())print "邮件发送成功"except smtplib.SMTPException:print"Error: 无法发送邮件"$ python test.py邮件发送成功查看我们的收件箱(一般在垃圾箱),就可以查看到邮件信息:在HTML 文本中添加图片邮件的HTML 文本中一般邮件服务商添加外链是无效的,正确添加突破的实例如下所示:实例#!/usr/bin/python# -*- coding: UTF-8 -*-import smtplib from email.mime.imageimport MIMEImage from email.mime.multipartimport MIMEMultipart from email.mime.textimport MIMEText from email.headerimport Header sender = 'from@'receivers = ['429240967@']# 接收邮件,可设置为你的QQ邮箱或者其他邮箱msgRoot = MIMEMultipart('related')msgRoot['From'] = Header("菜鸟教程", 'utf-8')msgRoot['To'] = Header("测试", 'utf-8')subject = 'Python SMTP 邮件测试'msgRoot['Subject'] = Header(subject, 'utf-8')msgAlternative = MIMEMultipart('alternative')msgRoot.attach(msgAlternative)mail_msg = """ <p>Python 邮件发送测试...</p> <p><a href="http://w ">菜鸟教程链接</a></p> <p>图片演示:</p> <p><img src=" cid:image1"></p> """msgAlternative.attach(MIMEText(mail_msg, 'html', 'utf-8'))# 指定图片为当前目录fp = open('test.png', 'rb')msgImage = MIMEImage(fp.read())fp.close()# 定义图片 ID,在 HTML 文本中引用msgImage.add_header('Content-ID', '<image1>')msgRoot.attach(msgImage)try:smtpObj = smtplib.SMTP('localhost')smtpObj.sendmail(sender, receivers, msgRoot.as_string()) print"邮件发送成功"except smtplib.SMTPException:print"Error: 无法发送邮件"$ python test.py邮件发送成功查看我们的收件箱(如果在垃圾箱可能需要移动到收件箱才可正常显示),就可以查看到邮件信息:使用第三方SMTP 服务发送这里使用了QQ 邮箱(你也可以使用163,Gmail等)的SMTP 服务,需要做以下配置:QQ 邮箱通过生成授权码来设置密码:QQ 邮箱SMTP 服务器地址:,端口:25。