Python 使用smtplib拒绝AOL邮件

Python 使用smtplib拒绝AOL邮件,python,mail-server,smtplib,aol,Python,Mail Server,Smtplib,Aol,我正在使用smtplib通过AOL帐户发送电子邮件,但在成功验证后,它被拒绝,并出现以下错误 reply: '521 5.2.1 : AOL will not accept delivery of this message.\r\n' reply: retcode (521); Msg: 5.2.1 : AOL will not accept delivery of this message. data: (521, '5.2.1 : AOL will not accept deliver

我正在使用
smtplib
通过AOL帐户发送电子邮件,但在成功验证后,它被拒绝,并出现以下错误

reply: '521 5.2.1 :  AOL will not accept delivery of this message.\r\n'
reply: retcode (521); Msg: 5.2.1 :  AOL will not accept delivery of this message.
data: (521, '5.2.1 :  AOL will not accept delivery of this message.')
下面是这个错误的解释

The SMTP reply code 521 indicates an Internet mail host DOES NOT ACCEPT
incoming mail. If you are receiving this error it indicates a configuration
error on the part of the recipient organisation, i.e. inbound e-mail traffic
is being routed through a mail server which has been explicitly configured
(intentionally or not) to NOT ACCEPT incoming e-mail.
收件人邮件(在我的脚本中)是有效的(gmail)地址,在此调试邮件被拒绝后

send: 'Content-Type: text/plain; charset="us-ascii"\r\nMIME-Version:    1.0\r\nContent-Transfer-Encoding: 7bit\r\nSubject: My reports\r\nFrom: myAOLmail@aol.com\r\nTo: reportmail@gmail.com\r\n\r\nDo you have my reports?\r\n.\r\n'
下面是代码的简短版本:

r_mail = MIMEText('Do you have my reports?')
r_mail['Subject'] = 'My reports'
r_mail['From'] = e_mail
r_mail['To'] = 'reportmail@gmail.com'

mail = smtplib.SMTP("smtp.aol.com", 587)
mail.set_debuglevel(True)
mail.ehlo()
mail.starttls()
mail.login(e_mail, password)
mail.sendmail(e_mail, ['reportmail@gmail.com'] , r_mail.as_string())

这是否是某种权限问题,因为我使用Yahoo帐户成功发送了相同的电子邮件,没有任何问题?

我猜AOL默认不允许中继访问,或者您没有手动配置它。您收到的错误表明aol没有您要发送邮件的收件人。在这种情况下,如果您想向gmail帐户发送电子邮件,请尝试连接到gmail SMPT服务器,而不是AOL


例如,在.l.google.com中将smpt服务器更改为
gmail smtp并关闭身份验证。

我猜AOL默认不允许中继访问,或者您没有手动配置它。您收到的错误表明aol没有您要发送邮件的收件人。在这种情况下,如果您想向gmail帐户发送电子邮件,请尝试连接到gmail SMPT服务器,而不是AOL


例如,将.l.google.com中的smpt服务器更改为
gmail smtp,并关闭身份验证。

正在运行
5.2.1:AOL将不接受此邮件的传递。
来自AOL smtp中继。我最终需要的是MIME消息体中的有效的From和To头,而不仅仅是SMTP连接

在您的特殊情况下,获得5.2.1反弹可能有许多原因。postmaster.aol.com网站提供了一些有用的诊断工具,以及一些关于此特定错误消息的非常模糊的文档。在我的例子中,我最终通过数据包嗅探我的Thunderbird电子邮件客户端与Python脚本发送的SMTP消息,并最终发现了区别

postmaster.aol.com文件:

AOL将不接受此邮件的传递
由于以下原因,这是永久性反弹:

  • 域中的RFC2822与发送服务器的RDN不匹配
  • RFC 2822发件人地址没有A记录,并且不是有效的域
  • IP信誉不佳,邮件被发送到多个收件人
  • 邮件头中有多个发件人地址,IP信誉较差
用于通过smtp.aol.com发送邮件的My Python函数:
正在运行
5.2.1:AOL将不接受此邮件的传递。
来自AOL SMTP中继。我最终需要的是MIME消息体中的有效的From和To头,而不仅仅是SMTP连接

在您的特殊情况下,获得5.2.1反弹可能有许多原因。postmaster.aol.com网站提供了一些有用的诊断工具,以及一些关于此特定错误消息的非常模糊的文档。在我的例子中,我最终通过数据包嗅探我的Thunderbird电子邮件客户端与Python脚本发送的SMTP消息,并最终发现了区别

postmaster.aol.com文件:

AOL将不接受此邮件的传递
由于以下原因,这是永久性反弹:

  • 域中的RFC2822与发送服务器的RDN不匹配
  • RFC 2822发件人地址没有A记录,并且不是有效的域
  • IP信誉不佳,邮件被发送到多个收件人
  • 邮件头中有多个发件人地址,IP信誉较差
用于通过smtp.aol.com发送邮件的My Python函数:
你能从同一个AOL帐户发送电子邮件吗?我的意思是使用网络浏览器。这个问题是AOL方面的问题。@ρss谢谢!我得检查一下这个帐户有什么问题。我刚刚尝试了另一个帐户,它成功了。是的,正如我提到的,这个特定帐户或AOL存在一些问题。python脚本没有问题!也许你违反了AOL电子邮件服务的条款和条件,或者这个AOL帐户是垃圾邮件。你能从同一个AOL帐户发送电子邮件吗?我的意思是使用网络浏览器。这个问题是AOL方面的问题。@ρss谢谢!我得检查一下这个帐户有什么问题。我刚刚尝试了另一个帐户,它成功了。是的,正如我提到的,这个特定帐户或AOL存在一些问题。python脚本没有问题!也许你违反了AOL电子邮件服务的条款和条件,或者这个AOL帐户是垃圾邮件。我想OP想用AOL服务器将一封电子邮件从AOL帐户发送到Gmail帐户。我认为OP面临的问题与AOL服务器或电子邮件服务有关,而不是Gmail。是的,但OP可以简单地将
头设置为他的AOL帐户,这种方法的唯一问题是,主要ESP需要在您的邮件中包含DKIM和SPF头,没有它,邮件可能会命中垃圾邮件文件夹。如果这不重要,OP可以尝试我描述的解决方案。我认为OP希望使用AOL服务器从AOL帐户向Gmail帐户发送电子邮件。我认为OP面临的问题与AOL服务器或电子邮件服务有关,而不是Gmail。是的,但OP可以简单地将
头设置为他的AOL帐户,这种方法的唯一问题是,主要ESP需要在您的邮件中包含DKIM和SPF头,没有它,邮件可能会命中垃圾邮件文件夹。如果这不重要,OP可以尝试我描述的解决方案。
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

def genEmail(user, passwd, to, subject, message):
    smtp=smtplib.SMTP_SSL('smtp.aol.com',465)
    smtp.login(user, passwd)

    msg = MIMEMultipart()
    msg['Subject'] = subject
    msg['From'] = user # This has to exist, and can't be forged
    msg['To'] = to
    msg.attach(MIMEText(message, 'plain'))

    smtp.sendmail(user, to, msg.as_string())
    smtp.quit()