Python smtplib电子邮件不会发送到外部地址

时间:2019-07-25 16:55:59

标签: python-2.7 smtp smtplib mime-mail

我可以使用mime和smtplib在内部自动处理某些电子邮件,但是由于某些原因,这些电子邮件无法发送到外部地址(公司域之外)

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email import Encoders
import smtplib

SERVER = 'mailrelay'
FROM = 'myemail@internaldomain.com'
TO = ['myemail@internaldomain.com','someemail@externaldomain.com']

body = 'This is a test'

msg = MIMEMultipart()
msg["To"] = ','.join(TO)
msg["From"] = FROM
msg["Subject"] = 'Automated Test Email'

msgText = MIMEText(body, 'html')
msg.attach(msgText)

message = msg.as_string()

server = smtplib.SMTP(SERVER)
server.sendmail(FROM,TO,message)
server.quit()

产生此错误:

SMTPRecipientsRefused: {'someemail@externaldomain.com': (550, '5.7.1 Unable to relay')}

Admin坚持启用了中继功能,并告诉我使用Powershell向外部域发送电子邮件是可行的,因此这不是中继问题。

所以现在我被卡住了。如果这不是python告诉我的问题,是我的管理员错了还是发生了其他事情?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在这种情况下,我只需要进行身份验证即可

server.ehlo()
server.starttls()
server.ehlo
server.login('user', 'pass')