简体   繁体   English

SMTP错误:尝试使用python和postfix发送电子邮件时“收件人被拒绝”

[英]SMTP error: “Recipient addressed refused” when trying to send an email using python and postfix

I'm getting this error: 我收到这个错误:

raise SMTPRecipientsRefused(senderrs) smtplib.SMTPRecipientsRefused: {'example@hotmail.com': (550, '5.1.1 : Recipient address rejected: hotmail.com')} 提出SMTPRecipientsRefused(发送者)smtplib.SMTPRecipientsRefused:{'example@hotmail.com':( 550,'5.1.1:收件人地址被拒绝:hotmail.com')}

when trying to run my python script. 当我试图运行我的python脚本时。

Regardless of what recipient address I put in, it will still give me the same error. 无论我输入什么收件人地址,它仍然会给我同样的错误。 I have postfix's configuration installed as local and it properly recognizes 'localhost' but not any of the sender addresses. 我将postfix的配置安装为本地,它正确识别'localhost'但不识别任何发件人地址。 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 postfix. 这是postfix的main.cf文件。 Looking at it now,mydestination is only set to local addresses, could that be the issue? 现在看一下,mydestination只设置为本地地址,这可能是问题吗?

# 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

Thank you in advance 先感谢您

I faced a similar issue in my python script. 我在python脚本中遇到了类似的问题。

Use the following command to change the configuration of Postfix to Internet Site 使用以下命令将Postfix的配置更改为Internet站点

sudo dpkg-reconfigure postfix

Change the Postfix configuration to Internet Site . 将Postfix配置更改为Internet站点 This will resolve your problem and can send mail to any mail address. 这将解决您的问题,并可以发送邮件到任何邮件地址。

Your code looks OK. 你的代码看起来不错。 This is very likely a configuration issue with Postfix. 这很可能是Postfix的配置问题。

Hi I had a similar problem. 嗨我有类似的问题。 I was getting the error: 我收到了错误:

(550, '5.7.1 Client does not have permissions to send as this sender') (550,'5.7.1客户端无权作为此发件人发送')

Turning on TLS, adding the ehlo commands explicitly fixed the problem for me. 打开TLS,添加ehlo命令明确地为我解决了问题。 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()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM