不使用第三方SMTP从Python发送邮件(“直接发送到MX”)

不使用第三方SMTP从Python发送邮件(“直接发送到MX”),python,email,smtp,mail-server,Python,Email,Smtp,Mail Server,是否可以直接从我的计算机向Hotmail或Gmail(或任何其他)收件人发送电子邮件,而无需连接到第三方发送服务器(SMTP) i、 e.如果收件人是gmail.com,我的电脑是否可能直接连接到gmail.comexample@gmail.com等等 我试过这个: import smtplib def mailsend(FROM, TO, SUBJECT, TEXT): message = "From: %s\nTo: %s\nSubject: %s\n%s" % (FROM, TO

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

i、 e.如果收件人是gmail.com,我的电脑是否可能直接连接到gmail.comexample@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")
但我明白了

错误号10061:无法建立连接,因为目标计算机

(原因可能是
localhost
没有任何电子邮件发送服务器,但我的问题是:是否可以在没有此类电子邮件发送服务器的情况下直接向收件人的服务器发送电子邮件?)

如何用Python编写“直达MX”邮件?()

注:

  • 我正在Windows上运行它,我没有本地SMTP/Sendmail/Postfix

  • 我知道这样做通常不是一个好主意(收件人很可能会拒绝我发送的电子邮件,因为我没有任何DKIM、SPF等),我也知道运行一个高投递率的邮件服务器是一项非常困难的任务,但我只是想知道,从技术上讲,这是否可行


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

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

代码应该是相同的,但不是使用
'localhost'
或收件人的mx,而是对每个连接使用自己的mx


顺便说一句:您在主题标题后缺少一个额外的
\n
(换行符)。

否。您可以运行自己的SMTP服务器,或者使用gmail SMTP服务器(如果您有gmail帐户)。如上所述。但请注意,如果您运行自己的SMTP服务器(例如在本地计算机上),gmail或其他收件人可以将您的电子邮件标记为垃圾邮件,或简单地拒绝连接。@Grantly我有一个gmail帐户,我可以连接到他们的SMTP并使用此常用方法,但我的问题是:有没有可能让Python脚本直接连接收件人的服务器而不使用第三方SMTP。@Grantly:你不知道你在说什么。如果你用正确的MX查找替换
localhost
,答案是“技术上是”但是在你的问题中没有关于Python的具体内容,所以我继续认为你应该接受这个副本,因为你在这里收到的任何答案都可能告诉你在这个问题的答案中找不到的东西。你能详细说明为什么这是一个如此糟糕的想法吗?