我用 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/