Python SMTP发送邮件
Python SMTP发送邮件
SMTP(Simple Mail Transfer Protocol)是因特网上的标准电子邮件传输协议,它用于电子邮件的发送和接收。Python语言提供了Smtp类,使用户能够通过Python脚本自动发送电子邮件。
步骤
下面几个步骤演示了如何使用Python发送邮件:
- 连接邮件服务器
- 登录邮件服务器
- 编写邮件内容
- 发送邮件
- 关闭邮件服务器连接
连接邮件服务器
在Python中,可以通过以下代码连接邮件服务器:
import smtplib
mail_host = "smtp.example.com"
mail_port = 25 # 端口号
mail_user = "yourusername"
mail_pass = "yourpassword"
smtpObj = smtplib.SMTP(mail_host, mail_port)
在SMTP()
类实例化时,需要还需要传入两个参数,即邮件服务器的地址和端口号。常用的邮件服务器的地址如下:
- 新浪邮箱:smtp.sina.com.cn
- 阿里云邮箱:smtp.mxhichina.com
- 谷歌邮箱:smtp.gmail.com
- QQ邮箱:smtp.qq.com
登录邮件服务器
使用SMTP类实例化的smtpObj
对象,我们需要通过login()
方法进行登录。
smtpObj.login(mail_user, mail_pass)
其中mail_user
是指邮箱账号,而mail_pass
是指邮箱密码。
编写邮件内容
编写邮件内容的代码如下:
from email.mime.text import MIMEText
mail_content = '这是一封测试邮件' # 邮件正文
message = MIMEText(mail_content, 'plain', 'utf-8') # 实例化MIMEText对象
message['Subject'] = 'Python SMTP测试邮件' # 邮件主题
message['From'] = mail_user # 发送者邮箱
message['To'] = 'receiver@example.com' # 接收者邮箱,可以使用逗号分隔多个邮箱
以上代码中,我们使用了email
库中的MIMEText
模块,MIME是互联网上的多用途邮件扩展,在Python中,通过MIMEText
模块可以创建一个文本类型的邮件对象。
发送邮件
使用sendmail()
方法来发送邮件:
smtpObj.sendmail(sender, receivers, message.as_string())
其中,sender
指发送者邮箱,receivers
指接收者邮箱(可包含多个),message.as_string()
将message
对象转化为字符串形式。整个代码如下:
import smtplib
from email.mime.text import MIMEText
mail_host = "smtp.example.com"
mail_port = 25 # 端口号
mail_user = "yourusername"
mail_pass = "yourpassword"
sender = mail_user # 发送者邮箱
receivers = ['receiver@example.com'] # 接收者邮箱,可以使用逗号分隔多个邮箱
smtpObj = smtplib.SMTP(mail_host, mail_port)
smtpObj.login(mail_user,mail_pass)
mail_content = '这是一封测试邮件' # 邮件正文
message = MIMEText(mail_content, 'plain', 'utf-8') # 实例化MIMEText对象
message['Subject'] = 'Python SMTP测试邮件' # 邮件主题
message['From'] = mail_user # 发送者邮箱
message['To'] = ','.join(receivers) # 接收者邮箱,可以使用逗号分隔多个邮箱
smtpObj.sendmail(sender, receivers, message.as_string())
smtpObj.quit()
关闭邮件服务器连接
发送完毕后,关闭邮件服务器连接。关闭连接时不需要传入任何参数:
smtpObj.quit()
收尾
Python SMTP发送邮件非常简单方便,只需要遵循以上步骤,并注意正确填写SMTP、用户名和密码即可。