2012-03-02 21 views
6

estoy recibiendo este error:error de SMTP: "Destinatario dirigida negó" al intentar enviar un correo electrónico utilizando Python y postfix

raise SMTPRecipientsRefused(senderrs) smtplib.SMTPRecipientsRefused: {'[email protected]': (550, '5.1.1 : Recipient address rejected: hotmail.com')}

al intentar ejecutar mi script en Python.

Independientemente de la dirección del destinatario que ingrese, aún así obtendré el mismo error. Tengo la configuración de postfix instalada como local y reconoce apropiadamente 'localhost' pero no ninguna de las direcciones del remitente. Este es mi código:

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 = "[email protected]" 

sendEmail(addressFrom, addressTo, msg) 

Y este es el archivo main.cf para postfix. Mirándolo ahora, mydestination solo se establece en direcciones locales, ¿podría ser ese el problema?

# 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's 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 

gracias de antemano

Respuesta

1

Su código se ve bien. Es muy probable que se trate de un problema de configuración con Postfix.

+0

¿Realmente? ¿Ayudaría si publicara el archivo de configuración? – user1186173

+0

"Mirándolo ahora, mydestination solo está configurado en direcciones locales, ¿podría ser ese el problema?" Sí exactamente. Ver http://www.postfix.org/postconf.5.html#mydestination – Sahand

+0

Gracias por ese enlace, fue definitivamente útil, hice un par de cambios y aún recibo el mismo error. Además, quiero poder enviar un correo electrónico a cualquier dominio, no solo uno específico. Siento que la configuración actual es solo para dominios específicos. – user1186173

0

Hola tuve un problema similar. Estaba consiguiendo el error:

(550, '5.7.1 El cliente no tiene permisos que enviar como este remitente')

Encendido de TLS, la adición de la EHLO fija explícitamente el problema para mí. Espero eso ayude.

def mail(msg): 
email_server = "mail.some-server.com" 
sender = "[email protected]" 
to = "[email protected]" 
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() 
Cuestiones relacionadas