Python的smtplib模块违反了Gmail的美国条款

2024-03-28 11:35:31 发布

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

在使用Python的smtplib时,如何避免违反Gmail的使用条款?

我想用Python发送内部电子邮件。在与gmailapi抗争了两天之后,我放弃了。然后我找到了smtplib模块,它看起来简单而有前途

遵循示例here,我编写了一小段Python代码:

import smtplib

# Details of where to send FROM
emailUser     = 'an.account.I.made.just.for this.test@gmail.com'
emailPassword = 'password123'

# Send the following message to an address...
message       = '[ I am email content ]'
toAddress     = 'test.victim@gmail.com'

# Define the HEADER (to, from, and subject)
header = """
  To: %s
  From: %s
  Subject: Python SMTPLIB Test
"""
header = header % (toAddress, emailUser)

# [ Don't know what this does ]
smtpserver = smtplib.SMTP("smtp.gmail.com",587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo

# Use User/Password credentials to send email
smtpserver.login(emailUser, emailPassword)
smtpserver.sendmail(emailUser, toAddress, message)

smtpserver.close()

我执行了这个脚本。看来谷歌的算法一定是把这个解读为恶意发送,并迅速关闭了我的账户!这很公平,因为我确信smtplib很容易被滥用。然而,我有诚实的意图,但我不知道如何绕过这个问题:在使用Python的smtplib时,如何避免违反Gmail的使用条款?


Tags: totestcomansendmessagethisgmail
1条回答
网友
1楼 · 发布于 2024-03-28 11:35:31

这可能是因为你不分青红皂白地与EHLO建立联系,你应该使用HELO

如果服务器支持EHLO,那么客户机可以使用EHLO而不是HELO作为其第一个请求。 另一方面,如果服务器不支持EHLO,而客户机发送EHLO,则服务器将拒绝EHLO。然后,客户必须回到直升机上

有一些服务器在看到EHLO时会断开连接。如果客户端发现既不接受EHLO也不接受HELO,例如因为连接已关闭,那么它必须建立新连接并从HELO开始

相关问题 更多 >