SMTP error: "Recipient addresses refused" when trying to send an email using python and postfix

I get this error:

raise SMTPRecipientsRefused (senderrs) smtplib.SMTPRecipientsRefused: {' example@hotmail.com ': (550, '5.1.1: Recipient address rejected: hotmail.com')}

when trying to run my python script.

No matter what recipient address I insert, it will still give me the same error. I have a postfix configuration set as local, and it correctly recognizes "localhost", but not any of the sender addresses. This is my code:

import smtplib def sendEmail(addressFrom, addressTo, msg): server = smtplib.SMTP('localhost') server.set_debuglevel(1) server.sendmail(addressFrom, addressTo, msg) server.quit() msg = "This is the content of the email" addressFrom = "" addressTo = " example@hotmail.com " sendEmail(addressFrom, addressTo, msg) 

And this is the main.cf file for the postfix. Looking at it now, mydestination is set only to local addresses, maybe a problem?

 # See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = user-desktop **mydomain = hotmail.com** alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases **mydestination = user-desktop, localhost.$mydomain www.$mydomain** relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = loopback-only default_transport = error relay_transport = error inet_protocols = ipv4 

Thank you in advance

+6
source share
2 answers

Your code looks fine. This is most likely a problem with configuring Postfix.

+1
source

Hi, I had a similar problem. I get an error message:

(550, "5.7.1 The customer is not entitled to send as this sender")

Turning on TLS, adding ehlo commands clearly fixed the problem for me. Hope it helps.

 def mail(msg): email_server = "mail.some-server.com" sender = " me@some-server.com " to = " you@some-server.com " subject = "How about those Mariners!" headers = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (sender, to, subject) text = msg message = headers + text mailServer = smtplib.SMTP(email_server) mailServer.set_debuglevel(1) mailServer.ehlo() mailServer.starttls() mailServer.ehlo() mailServer.login('user', 'pass') mailServer.ehlo() mailServer.sendmail(sender, to, message) mailServer.quit() 
0
source

Source: https://habr.com/ru/post/909843/


All Articles