【发布时间】:2020-10-11 16:10:38
【问题描述】:
当我在不使用任何函数的情况下非常简单地实现相同的代码时,我能够毫无问题地发送邮件。但是,当我尝试使用某个功能发送邮件时,我收到了邮件,因为我的发件人帐户已被禁用并且它正在阻止我的邮件和帐户。
必须在函数中满足某些过滤器后实现发送邮件的代码,以便可以在需要时使用它来发送邮件。
我的代码sn-p:
import smtplib
def setup_mail():
global smtpObj,sender,receivers,message
sender = 'sample@gmail.com'
receivers = ['sample1@gmail.com','sample2@gmail.com']
message = """From: From Person <from@fromdomain.com>
To: To Person <to@todomain.com>
Subject: 1 MIN candle 15 points alert
TIME: watch out next 2 minutes
"""
smtpObj = smtplib.SMTP_SSL('smtp.gmail.com', 465)
smtpObj.login("sample@gmail.com","samplepassword")
setup_mail()
def sending_mails(smtpObj):
smtpObj.sendmail(sender, receivers, message)
for i in range(3):
sending_mails(smtpObj);
print("Successfully sent email")
我得到的错误,
Traceback(最近一次通话最后一次):文件“C:/Users/Arun/PycharmProjects/Astro/venv/Scripts/ZERODHA_DEV/sendmail.py”,第 22 行,在发送邮件(smtpObj)中;文件“C:/Users/Arun/PycharmProjects/Astro/venv/Scripts/ZERODHA_DEV/sendmail.py”,第 20 行,sending_mails smtpObj.sendmail(sender, receivers, message) 文件“C:\Python\lib\smtplib. py",第 888 行,在 sendmail 中引发 SMTPDataError(code, resp) smtplib.SMTPDataError: (451, b'4.3.0 邮件服务器暂时拒绝消息。s77sm14888153pfc.164 - gsmtp')
但是它可以使用简单的代码,例如,
import smtplib
global smtpObj,sender,receivers,message
sender = 'sample@gmail.com'
receivers = ['sample1@gmail.com','sample2@gmail.com']
message = """From: From Person <from@fromdomain.com>
To: To Person <to@todomain.com>
Subject: 1 MIN candle 15 points alert
TIME: watch out next 2 minutes
"""
smtpObj = smtplib.SMTP_SSL('smtp.gmail.com', 465)
smtpObj.login("sample@gmail.com","samplepassword")
for i in range(3):
smtpObj.sendmail(sender, receivers, message)
print("Successfully sent email")
【问题讨论】:
-
以下是我得到的错误,回溯(最近一次调用最后一次):文件“C:/Users/Arun/PycharmProjects/Astro/venv/Scripts/ZERODHA_DEV/sendmail.py”,第 22 行,在 发送邮件(smtpObj);文件“C:/Users/Arun/PycharmProjects/Astro/venv/Scripts/ZERODHA_DEV/sendmail.py”,第 20 行,sending_mails smtpObj.sendmail(sender, receivers, message) 文件“C:\Python\lib\smtplib. py",第 888 行,在 sendmail 中引发 SMTPDataError(code, resp) smtplib.SMTPDataError: (451, b'4.3.0 邮件服务器暂时拒绝消息。s77sm14888153pfc.164 - gsmtp')
-
我还没有提到,我已经在 Gmail 设置和位置中启用了第三方和验证码的访问权限
-
您确定不只是达到发送限制吗?您的问题没有多大意义,SMTP 服务器如何知道您正在使用函数
-
是的,没有达到发送限制。当我运行这个程序时,它会在发送一次邮件后禁用我的帐户。因此,当它尝试第二次发送时它会阻塞。我发现了一个面临同样问题的stackoverflow页面,但也没有人提出解决方案,很奇怪
-
通常这种限制伴随着免费服务。如果您想要更专业的东西,通常需要付费。
标签: python-3.x email gmail