是否可以直接从我的计算机向 Hotmail 或 Gmail(或任何其他)收件人发送电子邮件,无需连接到第三方发送服务器 (SMTP)?
即如果收件人是[email protected],我的电脑是否可以直接连接到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("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="483c2d3b3c082d30292538242d662b2725" rel="noreferrer noopener nofollow">[email protected]</a>", "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1e7b667f736e727b5e79737f7772307d7173" rel="noreferrer noopener nofollow">[email protected]</a>", "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 等),而且我确实知道这是一个运行一个高投递率的邮件服务器是一项非常艰巨的任务,但我只是想知道从技术上讲是否可能
最佳答案
如果您使用收件人域的 MX 而不是 'localhost'
,您的代码在技术上将“有效”。
但是:你不应该这样做!发送电子邮件涉及的不仅仅是一个 SMTP 连接。使用互联网提供商的 smtp 中继或类似服务器 - 其他一切都是一个非常糟糕的主意。
代码是相同的,但您将为每个连接使用您自己的 mx,而不是 'localhost'
或收件人的 mx。
顺便说一句:主题 header 后面缺少一个额外的 \n
(换行符)。
关于python - 从Python发送邮件而不使用第三方SMTP ("direct-to-MX"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48169101/