Python 在使用smtplib发送之前隔离邮件

Python 在使用smtplib发送之前隔离邮件,python,email,smtplib,Python,Email,Smtplib,我用smtplib以Python脚本的形式发送邮件。我担心我的脚本中可能存在不可预见的错误,这会导致它错误地从生产数据库向所有客户发送邮件。在发送邮件之前,有没有办法临时存储邮件?也许是另一个邮件库 如果邮件没有问题,我仍然想发送邮件,因此不可以只进行日志记录。一些建议: 1:设置本地Postfix服务器,并将其配置为将所有电子邮件挂起。然后在运行脚本后手动检查邮件队列。当你看到一切都很好时,就发电子邮件 我不是后缀专家,所以我不确定细节。这里有一个包含一些信息的手册页:(查找保持操作) 2:对

我用
smtplib
以Python脚本的形式发送邮件。我担心我的脚本中可能存在不可预见的错误,这会导致它错误地从生产数据库向所有客户发送邮件。在发送邮件之前,有没有办法临时存储邮件?也许是另一个邮件库

如果邮件没有问题,我仍然想发送邮件,因此不可以只进行日志记录。

一些建议:

1:设置本地Postfix服务器,并将其配置为将所有电子邮件挂起。然后在运行脚本后手动检查邮件队列。当你看到一切都很好时,就发电子邮件

我不是后缀专家,所以我不确定细节。这里有一个包含一些信息的手册页:(查找保持操作)

2:对脚本使用命令行选项:

def sendmail(args, recipient):
    if args.dryrun:
        print "Would send to " + recipient
    else:
        print "Sending to " + recipient
        smtp.sendmail(...)


如果您有错误的邮件列表或软件中有错误,“隔离”有什么帮助?普通的单元测试有什么问题?大致上是这样的“理论上,理论和实践没有区别。但是,在实践中,有区别。”在生产和测试系统之间有一些没有预料到的差异(因此没有测试)。这些漏洞将被彻底清除和测试,但发送电子邮件是不可逆的。什么?“隔离”有什么帮助?请解释此“隔离”的用例。它有什么作用?谁在用它?谁是主角?我有类似于选项2的东西,但在这个登台环境中,我对实时数据进行操作,并且真的想发送邮件,这是不够的。在这种情况下,我会同意建议1。
$ send_emails.py --dryrun
Would send to aa@aa.com
...
Would send to bb@bb.com

$ send_emails.py
Sending to aa@aa.com
Sending to bb@bb.com