0

我可以使用 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')}

管理员坚持启用了中继,并告诉我使用 Powershell 向外部域发送电子邮件是可行的,所以它不可能是中继问题。

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

有任何想法吗?

4

1 回答 1

1

看起来我只需要在这种情况下进行身份验证:

server.ehlo()
server.starttls()
server.ehlo
server.login('user', 'pass')
于 2019-07-25T17:07:21.927 回答