是否可以直接从我的计算机向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等),以及我知道运行一个好的交付率邮件服务器是一项非常艰巨的任务,但我只是想知道从技术上讲,它是否可能
答案 0 :(得分:2)
如果您使用了recpient域的MX而不是'localhost'
,那么您的代码在技术上会“正常工作”。
但是你不应该这样做!发送电子邮件涉及的不仅仅是一个SMTP连接。使用您的互联网提供商或类似服务器的smtp中继 - 其他一切都是一个非常糟糕的主意。
代码是相同的,但代替'localhost'
或收件人的mx,您将为每个连接使用自己的mx。
BTW:您在主题标题后缺少额外的\n
(换行符)。