不使用第三方SMTP(“directtoMX”)从Python发送邮件

2024-10-02 16:21:16 发布

您现在位置:Python中文网/ 问答频道 /正文

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

也就是说,我的电脑有可能直接连接到gmail.com网站如果收件人是example@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 : No connection could be made because the target machine...

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

如何用Python编写“直达MX”邮件?as described here

注意事项:

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

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


Tags: totextfrom服务器commessageserverexample
1条回答
网友
1楼 · 发布于 2024-10-02 16:21:16

如果您使用接收者域的MX而不是'localhost',那么您的代码在技术上是“有效的”

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

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

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

相关问题 更多 >