Python3 SMTP发送邮件学习笔记
什么是SMTP?
SMTP即Simple Mail Transfer Protocol,它是一种用于发送电子邮件的标准协议。SMTP通常用于发送电子邮件,而POP和IMAP则用于接收电子邮件。
Python中SMTP模块的使用
Python的smtplib模块提供了SMTP客户端实现,开发人员可以使用该模块来完成电子邮件的发送任务。
SMTP类
SMTP类是smtplib模块中最重要的类,它提供了与SMTP服务器交互的功能,并且允许发送邮件。
导入SMTP类:
pythonCopy Codeimport smtplib
创建SMTP对象:
pythonCopy CodesmtpObj = smtplib.SMTP([host[, port[, local_hostname]]])
参数说明:
- host: SMTP服务器的主机名或IP地址。默认值为localhost。
- port: SMTP服务使用的端口号。默认情况下,SMTP使用25号端口。
- local_hostname: 发送客户端的主机名。默认为本地主机名。
SMTP示例代码
pythonCopy Codeimport smtplib
from email.mime.text import MIMEText
from email.header import Header
# 邮件起始信息
sender = '发送者邮箱'
receiver = '接收者邮箱'
subject = 'Python SMTP 邮件测试'
# 邮件文本内容
message = MIMEText('这是Python SMTP 邮件测试。', 'plain', 'utf-8')
message['From'] = Header("发件人姓名", 'utf-8') # 发件人姓名
message['To'] = Header("收件人姓名", 'utf-8') # 收件人姓名
message['Subject'] = Header(subject, 'utf-8')
# SMTP服务器地址
smtp_server = "邮件服务器地址"
# 发送邮件
try:
smtpObj = smtplib.SMTP(smtp_server, 25)
smtpObj.login("邮箱账号", "邮箱密码")
smtpObj.sendmail(sender, receiver, message.as_string())
print("邮件发送成功!")
except Exception as e:
print("邮件发送失败,原因:", e)
finally:
smtpObj.quit()
在上述代码中,我们导入了smtplib
模块,和email.mime.text
和email.header
模块,MIMEText()
函数用于创建文本内容,Header()
函数用于创建邮件标题。
代码中,我们指定了发件人的邮箱、收件人的邮箱和邮件主题,然后进行SMTP服务器的登录和认证,最后利用sendmail()
方法发送邮件。如果发送成功,则输出“邮件发送成功!”;如果发送失败,则输出“邮件发送失败,原因:e”(其中e为异常信息)。
至此,我们完成了Python SMTP发送邮件的学习笔记和实例。