使用 SMTPLib Python 时获取未经授权的发件人地址

2023-12-10

我编写了一个非常简单的 Python 脚本来自动发送电子邮件。这是它的代码:

import smtplib

From = "[email protected]"
To = ["[email protected]"]

with smtplib.SMTP('smtp.gmx.com', 587) as smtp:
    smtp.ehlo()
    smtp.starttls() 
    smtp.ehlo()

    smtp.login("[email protected]", Password)

    Subject = "Test"
    Body = "TestingTheBesting"
    Message = f"{Subject}\n\n{Body}"

    smtp.sendmail(From, To, Message)

每当我运行此代码时,我都会收到一个非常奇怪的错误,告诉我此发件人是“未经授权的发件人”。这是完整的错误

File "test.py", line 17, in <module>    smtp.sendmail(From, To, Message)
  File "C:\Users\James\AppData\Local\Programs\Python\Python37-32\lib\smtplib.py", line 888, in sendmail888, in sendmail    raise SMTPDataError(code, resp)smtplib.SMTPDataError: (554, b'Transaction failed\nUnauthorized sender address.')

我已经在 GMX 设置中启用了 SMTP 访问,但我不确定现在还需要做什么来解决此问题。

Note:我知道变量密码尚未定义。这是因为我在发布之前故意删除了它,它是在我的原始代码中定义的。


GMX 检查消息标头中标头中的“发件人”条目与实际发件人之间的匹配。您提供了一个简单的字符串作为消息,因此没有标头,因此出现 GMX 错误。为了解决这个问题,您可以使用电子邮件包中的消息对象。

import smtplib
from email.mime.text import MIMEText

Subject = "Test"
Body = "TestingTheBesting"
Message = f"{Subject}\n\n{Body}"
msg = MIMEText(Message)

msg['From'] = "[email protected]"
msg['To'] = ["[email protected]"]

with smtplib.SMTP('smtp.gmx.com', 587) as smtp:
    smtp.ehlo()
    smtp.starttls() 
    smtp.ehlo()

    smtp.login("[email protected]", Password)


    smtp.sendmail(msg['From'], msg['To'], msg)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SMTPLib Python 时获取未经授权的发件人地址 的相关文章

随机推荐