我正在使用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())
这是一种许可问题,因为我成功发送了与雅虎帐户相同的电子邮件而没有任何问题吗?
答案 0 :(得分:0)
我猜AOL默认不允许中继访问,或者您没有手动配置它。你得到的错误说aol没有你想要发送消息的收件人。在这种情况下,如果您要向gmail帐户发送电子邮件,请尝试连接到gmail SMPT服务器而不是AOL。
例如,将smpt服务器更改为gmail-smtp-in.l.google.com
并关闭身份验证。
答案 1 :(得分:0)
我自己从AOL SMTP中继进入5.2.1 : AOL will not accept delivery of this message.
。我最终需要的是MIME邮件正文中的From和To标题,而不仅仅是SMTP连接。
在您的特定情况下,获得此5.2.1反弹可能有多种原因。 postmaster.aol.com网站提供了一些有用的诊断工具,以及针对此特定错误消息的一些非常模糊的文档。在我的情况下,我结束了数据包嗅探我的Thunderbird电子邮件客户端发送的SMTP邮件与Python脚本,并最终发现了差异。
https://postmaster.aol.com/error-codes
AOL不接受此邮件的发送
由于以下原因,这是永久性的反弹:
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()