您的位置:

Python SMTP邮件发送教程

SMTP(Simple Mail Transfer Protocol)是一种用于电子邮件发送的标准协议。在Python中,可以使用smtplib库来实现SMTP邮件发送。本篇文章将带领您从安装SMTP库开始,一步一步了解该如何使用Python发送邮件。

一、安装smtplib库

在使用Python库之前,首先要确保该库已经被安装了。安装smtplib库的命令如下:

pip install secure-smtplib

注意,这里使用的是secure-smtplib库,因为这个库允许我们将SMTP服务器连接方式从普通的未加密方式变成加密方式的SSL/TLS。

二、连接SMTP服务器

在Python中连接SMTP服务器的第一步是创建一个SMTP对象,代码如下:

import smtplib

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

在上面的代码中,我们使用SMTP()方法连接了一个名为smtp.example.com的SMTP服务器,并设置了它的端口号为587。当然,您需要根据实际情况来修改这些参数。

接下来,我们可以使用ehlo()方法来向SMTP服务器发送一个“hello”消息,以便与服务器建立联系:

smtpObj.ehlo()

如果服务器支持加密方式,可以使用starttls()方法将连接加密:

smtpObj.starttls()

通过starttls()方法加密的SMTP连接是安全的,因为它可以保护您的邮箱登录信息,在传输过程中不会被截取。

三、登录邮箱

接下来,我们需要登录到要发送邮件的邮箱。登录过程很简单,只需要使用login()方法向服务器发送登录信息即可:

smtpObj.login('youremail@example.com', 'yourpassword')

在这个例子中,我们以youremail@example.com为例,替换为您要发送邮件的邮箱账号和密码。

四、发送邮件

现在我们已经连接到SMTP服务器并且登录到我们要发送邮件的邮箱了,接下来就可以开始发送邮件了。使用sendmail()方法来完成发送邮件的过程。

smtpObj.sendmail('from@example.com', 'to@example.com', 'Subject: Hello!\n\nThis is a test email message.')

在上面的例子中,我们使用了sendmail()方法向to@example.com发送了一封标题为“Hello!”内容为“This is a test email message.”的测试邮件。请注意,SMTP协议需要邮件正文中包含两个换行符来分隔邮件头和邮件正文。如果您的邮件没有正常发送,请检查一下是否添加了足够数量的换行符。

当然,您也可以将邮件正文部分存储在一个文件中,然后从该文件中读取需要发送的内容:

with open('message.txt') as file:
    message = file.read()

smtpObj.sendmail('from@example.com', 'to@example.com', message)

在上面的代码中,我们使用了Python内置的with语句来读取message.txt文件中的内容,并将这些内容发送到to@example.com这个邮箱地址中。

五、退出SMTP服务器

当所有的邮件都已经发送完毕之后,我们可以使用quit()方法来退出SMTP服务器:

smtpObj.quit()

注意,在退出 SMTP 连接之前,请务必要调用quit()方法,否则可能会发生一些未知的错误。

至此,通过上文的方法,我们就可以完成使用Python来发送邮件的整个过程了。以下是完整的程序代码:

import smtplib

smtpObj = smtplib.SMTP('smtp.example.com', 587)
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.login('youremail@example.com', 'yourpassword')
smtpObj.sendmail('from@example.com', 'to@example.com', 'Subject: Hello!\n\nThis is a test email message.')
smtpObj.quit()