📜  Python使用SMTP发送电子邮件(1)

📅  最后修改于: 2023-12-03 15:04:37.732000             🧑  作者: Mango

Python使用SMTP发送电子邮件

在Python中,可以使用SMTP库发送电子邮件。SMTP是发送邮件的标准协议,支持发送邮件到多个收件人,支持附件和HTML内容。本文将介绍如何使用Python发送电子邮件。

导入SMTP库

Python的SMTP库包含邮件发送和接受的功能,需要导入它来发送邮件。可以使用以下代码导入SMTP库:

import smtplib
连接SMTP服务器

在发送电子邮件之前,必须先连接SMTP服务器。SMTP服务器负责将您的邮件传递到它所发送的收件人的SMTP服务器上。可以使用以下代码连接SMTP服务器:

smtpObj = smtplib.SMTP('smtp.example.com', 587)

在这里,"smtp.example.com"是您要连接的SMTP服务器的地址。"587"是SMTP服务器的端口号,通常使用"587"或"465"。

登录SMTP服务器

要在SMTP服务器上发送电子邮件,必须先登录SMTP服务器。可以使用以下代码登录SMTP服务器:

smtpObj.login('your_email_address@example.com', 'your_email_password')

在这里,'your_email_address@example.com'是您的电子邮件地址,'your_email_password'是您的电子邮件密码。您需要在这里提供正确的电子邮件地址和密码。

创建邮件

在登录SMTP服务器之后,可以创建邮件。可以使用以下代码创建邮件:

from email.mime.text import MIMEText

msg = MIMEText('Hello, World!')

msg['Subject'] = 'Python SMTP Test'
msg['From'] = 'your_email_address@example.com'
msg['To'] = 'recipient@example.com'

在这里,MIMEText类用于创建文本的MIME邮件对象。在这个例子中,邮件正文是“Hello, World!”。

邮件头包括主题,发件人和收件人。可以使用msg['Subject'],msg['From']和msg['To']属性设置邮件头。

发送邮件

在创建电子邮件之后,可以使用以下代码将电子邮件发送到SMTP服务器:

smtpObj.sendmail('your_email_address@example.com', 'recipient@example.com', msg.as_string())

在这里,'your_email_address@example.com'是您的电子邮件地址,'recipient@example.com'是接收方的电子邮件地址,msg.as_string()将电子邮件转换为字符串以便通过SMTP发送。

关闭SMTP连接

在完成电子邮件的发送后,需要关闭SMTP连接。可以使用以下代码关闭SMTP连接:

smtpObj.quit()
示例代码

以下是完整的示例代码,演示如何发送电子邮件:

import smtplib
from email.mime.text import MIMEText

smtpObj = smtplib.SMTP('smtp.example.com', 587)
smtpObj.starttls()
smtpObj.login('your_email_address@example.com', 'your_email_password')

msg = MIMEText('Hello, World!')
msg['Subject'] = 'Python SMTP Test'
msg['From'] = 'your_email_address@example.com'
msg['To'] = 'recipient@example.com'

smtpObj.sendmail('your_email_address@example.com', 'recipient@example.com', msg.as_string())

smtpObj.quit()

请注意,本文仅介绍如何使用SMTP库发送电子邮件。在实际使用中,您可能需要在电子邮件中包含HTML内容或附件。此外,您需要了解SMTP服务器的要求和限制,以确保您的邮件已正确发送。