使用Python从您的 Gmail 帐户发送邮件
在这里,我们将学习如何使用Python代码发送简单的基本邮件。 Python是一种强大的语言,不需要任何外部库来导入,并提供了一个本地库来发送电子邮件-“SMTP 库”。 “smtplib”创建一个简单邮件传输协议客户端会话对象,用于将电子邮件发送到 Internet 上的任何有效电子邮件 ID。不同的网站使用不同的端口号。
在本文中,我们使用 Gmail 帐户发送邮件。此处使用的端口号是“587”。而如果您想使用 Gmail 以外的网站发送邮件,则需要获取相应的信息。
从 Gmail 帐户发送邮件的步骤:
- 首先,需要导入“smtplib”库。
- 之后,为了创建一个会话,我们将使用它的实例 SMTP 来封装一个 SMTP 连接。
s = smtplib.SMTP('smtp.gmail.com', 587)
在此,您需要传递服务器位置的第一个参数和要使用的端口的第二个参数。对于 Gmail,我们使用端口号 587。
- 出于安全原因,现在将 SMTP 连接置于 TLS 模式。 TLS(传输层安全)加密所有 SMTP 命令。之后,为了安全和身份验证,您需要在登录实例中传递您的 Gmail 帐户凭据。如果您输入无效的电子邮件 ID 或密码,编译器将显示身份验证错误。
- 将您需要发送的消息存储在一个变量中,例如 message。使用 sendmail() 实例,发送您的消息。 sendmail() 使用三个参数: sender_email_id、receiver_email_id 和 message_to_be_sent 。参数需要按相同的顺序排列。
这将从您的帐户发送电子邮件。完成任务后,使用 quit() 终止 SMTP 会话。
# Python code to illustrate Sending mail from
# your Gmail account
import smtplib
# creates SMTP session
s = smtplib.SMTP('smtp.gmail.com', 587)
# start TLS for security
s.starttls()
# Authentication
s.login("sender_email_id", "sender_email_id_password")
# message to be sent
message = "Message_you_need_to_send"
# sending the mail
s.sendmail("sender_email_id", "receiver_email_id", message)
# terminating the session
s.quit()
向多人发送相同的消息
如果您需要将相同的消息发送给不同的人。您可以为此使用 for 循环。
例如,您有一个电子邮件 ID 列表,您需要向其发送相同的邮件。为此,请在 SMTP 会话的初始化和终止之间插入一个“for”循环。 Loop 会轮流初始化,发送完邮件后,SMTP 会话将被终止。
# Python code to illustrate Sending mail
# to multiple users
# from your Gmail account
import smtplib
# list of email_id to send the mail
li = ["xxxxx@gmail.com", "yyyyy@gmail.com"]
for dest in li:
s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls()
s.login("sender_email_id", "sender_email_id_password")
message = "Message_you_need_to_send"
s.sendmail("sender_email_id", dest, message)
s.quit()
要点:
- 此代码可以发送没有任何附件或任何主题的简单邮件。
- 这段代码最令人惊奇的事情之一是我们可以使用它发送任意数量的电子邮件,而 Gmail 主要将您的邮件放在主要部分。发送的邮件一般不会被检测为垃圾邮件。
- 文件处理也可用于从文件中获取电子邮件 ID 并进一步用于发送电子邮件。
Next:使用Python从您的 Gmail 帐户发送带有附件的邮件