AOL mail rejected using smtplib

2.4k Views Asked by At

I'm using smtplib to send email via AOL account, but after successful authentication it gets rejected with following error.

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.')

Here's explanation for this error.

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.

Recipient mail (in my script) is valid (gmail) address and after this debug message mail gets rejected.

send: 'Content-Type: text/plain; charset="us-ascii"\r\nMIME-Version:    1.0\r\nContent-Transfer-Encoding: 7bit\r\nSubject: My reports\r\nFrom: [email protected]\r\nTo: [email protected]\r\n\r\nDo you have my reports?\r\n.\r\n'

Here's short version of code:

r_mail = MIMEText('Do you have my reports?')
r_mail['Subject'] = 'My reports'
r_mail['From'] = e_mail
r_mail['To'] = '[email protected]'

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

Is this some kind of permission problem because I'm successfully sending same email with Yahoo account without any problems?

2

There are 2 best solutions below

3
pupizoid On

I guess that AOL doesn't allow relay access by default or you have not configured it manually. The error you get says that aol doesn't have recipient you want to send message. In this case if you want to send email to gmail account try to connect to gmail SMPT server instead of AOL.

Change smpt server to gmail-smtp-in.l.google.com for example and turn off authentication.

0
jorb On

Was running into 5.2.1 : AOL will not accept delivery of this message. from the AOL SMTP relay myself. What I ended up needing was valid From and To headers in the MIME message body, as opposed to just the SMTP connection.

In your particular case there could be any number of reasons for getting this 5.2.1 bounce. The postmaster.aol.com site has some helpful tools to diagnose, as well as some pretty vague documentation for this specific error message. In my case I ended up packet sniffing the SMTP messages that my Thunderbird email client was sending vs. the Python script, and eventually spotted the difference.

postmaster.aol.com documentation:

https://postmaster.aol.com/error-codes

AOL will not accept delivery of this message
This is a permanent bounce due to:

  • RFC2822 From domain does not match the rDNS of sending server.
  • RFC 2822 FROM address does not have an A record and is not a valid domain.
  • IP has a poor reputation and mail is sent to multiple recipients.
  • There are multiple From address in the mail headers and the IP reputation is poor.

My Python function for sending mail through smtp.aol.com:

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()