使用 python 2 和 smtplib 发送电子邮件时出错
Got an error by sending emails using python 2 and smtplib
编辑:主要错误是当此脚本从不同的 IP / Wifi 或其他任何地方运行时。它会像跳过它或其他任何东西一样取消它。
我正在尝试发送一封包含说明内容的电子邮件。 (或者我可以插入一个变量,例如:score = 32
,我会把 'score' 放在没有 ' ' 的 body 中。)
以下代码是我正在使用的代码:
import smtplib
gmail_user = 'name@gmail.com'
gmail_password = 'password'
sent_from = gmail_user
to = 'me@gmail.com'
subject = 'OMG Super Important Message'
body = 'blah blah blah this is a message'
email_text = """\
From: %s
To: %s
Subject: %s
%s
""" % (sent_from, ", ".join(to), subject, body)
try:
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.ehlo()
server.login(gmail_user, gmail_password)
server.sendmail(sent_from, to, email_text)
server.close()
print 'Email sent!'
except:
print 'Something went wrong...'
所以在它说 'body' 的地方,我可以像变量一样放置,而不仅仅是文本,它会发送。但是现在,
当我将程序发送给某人并且他们执行了直到此为止的步骤时,脚本将跳过它,因为打印 'loaded successful' 不会打印,这意味着它不起作用。关于如何修复的任何帮助?
您将到enable less secure apps以便通过smtplib
访问您的gmail
帐户。
允许安全性较低的应用访问您的帐户
如果某个应用或设备不符合我们的安全标准,Google 将阻止任何尝试从该应用或设备登录的人。由于这些应用和设备更容易被侵入,阻止它们有助于保护您的帐户安全。
一些不支持最新安全标准的应用示例包括:
- iPhone 或 iPad 版本 6 或以下版本的邮件应用程序
- 您的 Windows phone 8.1 版本之前的邮件应用程序
- 一些桌面邮件客户端,例如 Microsoft Outlook 和 Mozilla Thunderbird
更改安全性较低的应用的帐户访问权限
为了帮助提高 Google 工作、学校或其他团体帐户的安全性,我们阻止了一些安全性较低的应用程序使用它们。如果您拥有此类帐户,您将在尝试登录时看到 "Password incorrect" 错误。如果是这样,您有两个选择:
- 选项 1:安装使用更强大安全措施的更安全的应用程序。所有 Google 产品(例如 Gmail)都使用最新的安全措施。
- 选项 2:更改您的设置以允许安全性较低的应用进入您的帐户。我们不建议使用此选项,因为它会使他人更容易侵入您的帐户。如果您仍要允许访问,请按照以下步骤操作:
- 前往 "Less secure apps" section of my Account.
- 开启允许安全性较低的应用程序。 (注意:如果您的管理员锁定了不太安全的应用程序帐户访问权限,则此设置将被隐藏。)
如果您仍然无法登录您的帐户,learn more about the "password incorrect" error。
编辑:主要错误是当此脚本从不同的 IP / Wifi 或其他任何地方运行时。它会像跳过它或其他任何东西一样取消它。
我正在尝试发送一封包含说明内容的电子邮件。 (或者我可以插入一个变量,例如:score = 32
,我会把 'score' 放在没有 ' ' 的 body 中。)
以下代码是我正在使用的代码:
import smtplib
gmail_user = 'name@gmail.com'
gmail_password = 'password'
sent_from = gmail_user
to = 'me@gmail.com'
subject = 'OMG Super Important Message'
body = 'blah blah blah this is a message'
email_text = """\
From: %s
To: %s
Subject: %s
%s
""" % (sent_from, ", ".join(to), subject, body)
try:
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.ehlo()
server.login(gmail_user, gmail_password)
server.sendmail(sent_from, to, email_text)
server.close()
print 'Email sent!'
except:
print 'Something went wrong...'
所以在它说 'body' 的地方,我可以像变量一样放置,而不仅仅是文本,它会发送。但是现在,
当我将程序发送给某人并且他们执行了直到此为止的步骤时,脚本将跳过它,因为打印 'loaded successful' 不会打印,这意味着它不起作用。关于如何修复的任何帮助?
您将到enable less secure apps以便通过smtplib
访问您的gmail
帐户。
允许安全性较低的应用访问您的帐户
如果某个应用或设备不符合我们的安全标准,Google 将阻止任何尝试从该应用或设备登录的人。由于这些应用和设备更容易被侵入,阻止它们有助于保护您的帐户安全。
一些不支持最新安全标准的应用示例包括:
- iPhone 或 iPad 版本 6 或以下版本的邮件应用程序
- 您的 Windows phone 8.1 版本之前的邮件应用程序
- 一些桌面邮件客户端,例如 Microsoft Outlook 和 Mozilla Thunderbird
更改安全性较低的应用的帐户访问权限
为了帮助提高 Google 工作、学校或其他团体帐户的安全性,我们阻止了一些安全性较低的应用程序使用它们。如果您拥有此类帐户,您将在尝试登录时看到 "Password incorrect" 错误。如果是这样,您有两个选择:
- 选项 1:安装使用更强大安全措施的更安全的应用程序。所有 Google 产品(例如 Gmail)都使用最新的安全措施。
- 选项 2:更改您的设置以允许安全性较低的应用进入您的帐户。我们不建议使用此选项,因为它会使他人更容易侵入您的帐户。如果您仍要允许访问,请按照以下步骤操作:
- 前往 "Less secure apps" section of my Account.
- 开启允许安全性较低的应用程序。 (注意:如果您的管理员锁定了不太安全的应用程序帐户访问权限,则此设置将被隐藏。)
如果您仍然无法登录您的帐户,learn more about the "password incorrect" error。