Python3 SMTP发送邮件学习笔记

什么是SMTP?

SMTP即Simple Mail Transfer Protocol,它是一种用于发送电子邮件的标准协议。SMTP通常用于发送电子邮件,而POP和IMAP则用于接收电子邮件。

Python中SMTP模块的使用

Python的smtplib模块提供了SMTP客户端实现,开发人员可以使用该模块来完成电子邮件的发送任务。

SMTP类

SMTP类是smtplib模块中最重要的类,它提供了与SMTP服务器交互的功能,并且允许发送邮件。

导入SMTP类:

pythonCopy Code
import smtplib

创建SMTP对象:

pythonCopy Code
smtpObj = smtplib.SMTP([host[, port[, local_hostname]]])

参数说明:

  • host: SMTP服务器的主机名或IP地址。默认值为localhost。
  • port: SMTP服务使用的端口号。默认情况下,SMTP使用25号端口。
  • local_hostname: 发送客户端的主机名。默认为本地主机名。

SMTP示例代码

pythonCopy Code
import 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.textemail.header模块,MIMEText()函数用于创建文本内容,Header()函数用于创建邮件标题。

代码中,我们指定了发件人的邮箱、收件人的邮箱和邮件主题,然后进行SMTP服务器的登录和认证,最后利用sendmail()方法发送邮件。如果发送成功,则输出“邮件发送成功!”;如果发送失败,则输出“邮件发送失败,原因:e”(其中e为异常信息)。

至此,我们完成了Python SMTP发送邮件的学习笔记和实例。