python - 为什么我无法使用 SMTP 服务器发送超过 10 封电子邮件 (OUTLOOK)

标签 python outlook smtplib mail-server

我用 python 编写了一个 SMTP 应用程序,根据 Outlook 限制,它应该发送至少 100 多封电子邮件,但在 10 封邮件后帐户就会被禁止。谁能向我解释我正在使用的设置或程序有什么问题吗?我什至尝试使用应用程序密码。

发送 10 封电子邮件后出现的错误:

raise SMTPDataError(code, resp)

smtplib.SMTPDataError: (554, b'5.2.0 STOREDRV.Submission.Exception:OutboundSpamException; Failed to process message due to a permanent exception with message [BeginDiagnosticData]WASCL UserAction verdict is not None. Actual verdict is RefuseQuota, ShowTierUpgrade. OutboundSpamException: WASCL UserAction verdict is not None. Actual verdict is RefuseQuota, ShowTierUpgrade.[EndDiagnosticData] [Hostname=TYZPR02MB5988.apoprd02.prod.outlook.com]')

此外,发送这些电子邮件之间没有暂停,我登录以发送第一封电子邮件,并在发送第一封电子邮件后注销。我对每封邮件都做同样的事情。

代码在 for 循环内运行。所以基本上对于每个收件人来说都是如此。

我的代码:

selected_limit = limit_outlook
content = outlook_content
available_emails = list(outlook.keys())

# mail server parameters

smtpHost = 'smtp-mail.outlook.com'
smtpPort = 587
mailUname = details[0]  # Sender's username
mailPwd = details[1]  # App password
fromEmail = details[0]  # Sender's email

s = smtplib.SMTP(smtpHost, smtpPort)
s.connect(smtpHost, smtpPort)
s.starttls()
s.login(mailUname, mailPwd)

msg = MIMEMultipart()
msg['From'] = fromEmail
msg['To'] = ''.join([recepient])
msg['Subject'] = mailSubject
msg.attach(MIMEText(HtmlContent(content), 'html'))

msgText = msg.as_string()
sendErrs = s.sendmail(fromEmail, recepient, msgText)
s.quit()

最佳答案

我发现了,我在每封邮件之间添加了 5 秒的延迟,从 Outlook.com 启用了 POP 和 IMAP,我能够毫无问题地发送 30 多封电子邮件。

我将向可能遇到相同问题的任何人留下有关如何启用 POP 和 IMAP 的详细信息。

启用 POP 和 IMAP 的步骤:

选择“设置”>“查看所有 Outlook 设置”>“邮件”>“同步电子邮件”。

在 POP 和 IMAP 下,选择“允许设备和应用使用 POP”下的"is"。

选择保存。

关于python - 为什么我无法使用 SMTP 服务器发送超过 10 封电子邮件 (OUTLOOK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72678775/

相关文章:

excel - VBA过滤和发送电子邮件

c# - 如何将 smtp 发送功能添加到我的应用程序

python - 使用 smtplib 通过电子邮件发送带有缩进格式的字典列表作为字符串?

python - 使用字典的 'get' 方法来选择大小写。为什么它总是选择错误的东西?

python - 如何在 Pyramid (线程)中使用python和windows com?

Python 2 和 3 csv 阅读器

outlook - Windows、Outlook 或 Exchange 是否有用于读取 iCal 格式的 API?

python - 运行 Django 的 ./manage.py syncdb 时禁用更新 content_types

c++ - 启动默认电子邮件客户端以打开带有预选文件附件的 "send email"窗口

python - 如果消息包含某些字符,smtplib 将发送空白消息