尝试通过gmail使用python的smtplib发送电子邮件:
import smtplib
msg = "\r\n".join([
"From: " + email_host,
"To: " + email_recipient,
"Subject: subject",
"",
email_msg
])
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(email_host, email_pwd)
server.sendmail(email_host, email_recipient, msg)
server.quit()
对于yandex,yahoo和gmail等受欢迎的服务,它可以完美运行。但是,无法将邮件发送到基于域的电子邮件(login@some_domain.com)。
出什么问题了?
答案 0 :(得分:0)
电子邮件服务会受到限制,因为发送这些电子邮件时没有身份验证。
此SMTP服务器不需要TLS或身份验证。它是 受限制,因为电子邮件只能发送到其他Gmail地址或 Google Apps用户-因此,只有在以下情况下进行测试才有意义 使用Gmail或Google应用程序的内部网络。限制适用于 收件人。
即这些服务不介意在自己的域内发送电子邮件,但不希望恶意用户发送到其他域。
答案 1 :(得分:0)
好吧,在寻找答案时,我发现Google Mail服务不允许通过587 SMTP端口将邮件发送到基于域的电子邮件,因为它需要使用TLS。
我决定按照this帖子中所述切换到465 SMTP端口,因此现在可以正常使用了!另外,出于测试目的,我使用了另一个邮件服务(Yandex),该服务仅支持465 SMTP端口-也可以正常工作。