在没有第三方SMTP的情况下从Python发送邮件(" direct-to-MX")

时间:2018-01-09 13:18:40

标签: python email smtp mail-server

是否可以直接从我的计算机向Hotmail或Gmail(或任何其他)收件人发送电子邮件,而无需连接到第三方发送服务器(SMTP)?

即。如果收件人是example@gmail.com等,我的电脑可能直接连接到gmail.com

我试过了:

import smtplib

def mailsend(FROM, TO, SUBJECT, TEXT):
    message = "From: %s\nTo: %s\nSubject: %s\n%s" % (FROM, TO, SUBJECT, TEXT)
    server = smtplib.SMTP('localhost')
    server.sendmail(FROM, TO, message)
    server.quit()

mailsend("test@example.com", "example@gmail.com", "Hello", "First email")

但我得到

  

Errno 10061:因为目标机器无法建立连接......

(原因可能是localhost没有任何电子邮件发送服务器,但我的问题是:是否可以发送没有此类电子邮件发送服务器的电子邮件,但可以直接发送给收件人& #39; s服务器?)

如何做"直接到MX"用Python邮件?as described here

注意:

  • 我是从Windows运行的,我没有本地SMTP / Sendmail / Postfix。

  • 我知道这样做通常是个坏主意(收件人很可能拒绝我发送的电子邮件,因为我没有任何DKIM,SPF等),以及我知道运行一个好的交付率邮件服务器是一项非常艰巨的任务,但我只是想知道从技术上讲,它是否可能

1 个答案:

答案 0 :(得分:2)

如果您使用了recpient域的MX而不是'localhost',那么您的代码在技术上会“正常工作”。

但是你不应该这样做!发送电子邮件涉及的不仅仅是一个SMTP连接。使用您的互联网提供商或类似服务器的smtp中继 - 其他一切都是一个非常糟糕的主意。

代码是相同的,但代替'localhost'或收件人的mx,您将为每个连接使用自己的mx。

BTW:您在主题标题后缺少额外的\n(换行符)。