【问题标题】:Verify mail was sent from unit tests验证邮件是从单元测试发送的
【发布时间】:2011-06-06 19:14:35
【问题描述】:

我的 Django 1.2.4 应用程序中有一些单元测试。其中一项测试需要验证电子邮件是否在特定条件下发送。我该怎么做?

理想情况下,它应该是程序化的,但最好将电子邮件正文打印到控制台。

【问题讨论】:

    标签: django unit-testing email


    【解决方案1】:

    最新的 Django 测试文档有一个 Email Services 部分。

    然后你就做这样的事情:

    from django.core import mail
    
    print mail.outbox[0].body
    

    HTML 版本是通过附加的替代 mimetypes 处理的,您可以访问(如果附加了一个),例如

    content, mimetype = mail.outbox[0].alternatives[0]
    

    发件箱对象是 EmailMessages,further documented here

    【讨论】:

    • 也感谢您展示如何获取电子邮件本身(Django 文档仅显示如何获取发件箱的主题)。您是否知道发件箱其他属性的参考,例如消息的 html 版本?
    • HTML 版本是通过附加的替代 mimetype 处理的,您可以访问(如果您附加了一个),例如 content, mimetype = mail.outbox[0].alternatives[0]。发件箱对象是 EmailMessages,在此处进一步记录:docs.djangoproject.com/en/dev/topics/email/…
    • 所以希望 Django 文档能像 @mrooney 一样清楚地解释这一点,并且有办法奖励他一些代表。
    猜你喜欢
    • 2012-01-11
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 2017-05-23
    • 2010-11-19
    • 1970-01-01
    相关资源
    最近更新 更多