这是我的代码。我正在尝试从我的雅虎帐户发送一封简单的电子邮件,但收到错误消息 550。您能帮助我吗?
import smtplib
my_email = "**********@yahoo.co.in"
password = "wz**********pi"
message = """From: Me <mailto:**********@yahoo.com>
To: Me <mailto:**********@gmail.com>
Subject: SMTP email example
This is a test message.
"""
connection = smtplib.SMTP("smtp.mail.yahoo.com", port=587)
connection.starttls()
connection.login(user=my_email, password=password)
connection.sendmail(from_addr=my_email, to_addrs="**********@gmail.com", msg=message)
connection.close()
感谢您的帮助。| ||我尝试输入 port=587 但仍然没有结果。它给出了相同的错误 550
connection = smtplib.SMTP("smtp.mail.yahoo.com",
port=587 ) )
雅虎最近更新了他们的安全协议,这可能就是你无法使用你的雅虎帐户发送邮件的原因。为了解决这个问题,你必须在你的雅虎帐户中生成一个应用程序密码,并使用该密码而不是你的常规密码。以下是解决这个问题的步骤:
-
为你的雅虎帐户生成应用程序密码:
-
访问你的雅虎帐户安全设置页面(https://login.yahoo.com/account/security)。
- 如果出现提示,请登录你的雅虎帐户。
- 向下滚动到“应用程序密码”部分,然后点击“生成应用程序密码”。
- 从下拉菜单中选择“其他应用程序”,然后输入应用程序的名称(例如,“Python 脚本”)。
- 点击“生成”。
-
雅虎会为你生成一个应用程序密码。 复制此密码 ,因为它以后不会再次显示。
-
在你的 Python 代码中使用应用程序密码:
-
将你的 Python 代码中的
password
变量替换为生成的应用程序密码。
```python import smtplib
my_email = " * ***@yahoo.co.in" password = "your_app_password" # 将 'your_app_password' 替换为你的应用程序密码
message = """From: Me **********@yahoo.com To: Me **********@gmail.com Subject: SMTP email example
This is a test message. """
connection = smtplib.SMTP("smtp.mail.yahoo.com", port=587) connection.starttls() connection.login(user=my_email, password=password) connection.sendmail(from_addr=my_email, to_addrs=" * ***@gmail.com", msg=message) connection.close() ```
-
运行你的代码:
-
现在,你的代码应该可以运行并成功发送邮件了。
其他提示:
-
确保你使用的是雅虎的正确 SMTP 服务器地址(
smtp.mail.yahoo.com
)和端口号(587
)。 - 验证你的雅虎帐户的“发件人”地址是否与你尝试在代码中使用的地址相匹配。
- 检查你的雅虎帐户设置中是否启用了“允许不太安全的应用程序访问”选项。
如果你仍然遇到问题,请参阅雅虎的帮助页面或联系他们的支持团队以获取进一步的帮助。
标签:python,smtp,yahoo-mail From: 78803291