如何不通过身份验证直接将邮件发送到SMTP服务器?

发布于 2021-01-29 18:17:54

我想通过直接连接到将电子邮件直接从脚本发送到Gmail电子邮件帐户smtp.gmail.com

但是,我不希望脚本中没有gmail密码。据我了解,Gmail似乎需要进行身份验证,才能传递任何邮件,包括发送给自己的用户。

我的问题是,来自另一个SMTP服务器的邮件是如何传递的,因为该SMTP服务器将没有Gmail凭据。Gmail是否只需要对“ 匿名
”发件人进行身份验证,并且由于我的脚本是在个人计算机上运行的,因此它具有更高的安全性吗?这是我正在运行的python脚本:

import smtplib
import email
msg = email.message.Message()
msg["From"] = "user@gmail.com"
msg["To"] = "user@gmail.com"
msg["Subject"] = "Test message"
server = smtplib.SMTP("smtp.gmail.com",587)
server.starttls()
server.ehlo_or_helo_if_needed()
try:
    failed = server.sendmail("user@gmail.com","user@gmail.com", msg.as_string())
    server.close()
except Exception as e:
    print(e)

当我运行此脚本时,输出为:

(530, b'5.5.1 Authentication Required. Learn more at
5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 fw5sm21125889wib.0', 'user@gmail.com')

我的问题是,外部SMTP服务器如何避免此问题?它们是在本地脚本中复制的,还是需要正确的反向DNS记录,SPF记录等?

关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用某些未经身份验证的外部SMTP服务器(或本地SMTP),但是发送的邮件将被Google的垃圾邮件过滤器捕获,因为 msg [“
    From”]
    @ google.com ,而实际的SMTP不是 smtp.gmail .com

    这些SMTP服务器还必须在ISP的DNS中具有正确的反向区域,否则此smtp将被google阻止。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看