gpt4 book ai didi

python - 如何拒绝 smtpd.SMTPServer.process_message 中的收件人?

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:21 25 4
gpt4 key购买 nike

假设您在重写的类中处理一条消息,例如:

class MailProcessorServer(smtpd.SMTPServer):
def process_message(self, peer, sender, rcpttos, data):
badrecipients = []
for rcpt in rcpttos:
badrecipients.append(rcpt)

#Here I want to warn the sender via a bounced email
# that the recipient does not exist
raise smtplib.SMTPRecipientsRefused(badrecipients)
#but this just crashes the process and eventually the sender times out,
# not good enough

我只想立即退回给发件人。相反,发送服务(例如 GMail)最终会放弃并在数小时后警告用户。 documentation看起来很稀疏。

最佳答案

仅在 the sources 中记录(抱歉!),process_message 的规范包括:

This function should return None, for a normal `250 Ok' response; otherwise it returns the desired response string in RFC 821 format.

因此您可以“返回 '554 错误收件人 %s' % badrecipents”,而不是使用 raise 语句——不完全令人满意(没有正确说明好的和坏的混合,根据 RFC 821 应该返回“250 Ok”但稍后还会发送警告邮件)但它似乎确实是您正在寻找的“立即反弹”效果 提高

关于python - 如何拒绝 smtpd.SMTPServer.process_message 中的收件人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1029756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com