【问题标题】:sending mails with GAE local environment使用 GAE 本地环境发送邮件
【发布时间】:2014-10-07 18:43:51
【问题描述】:

如果不进行部署,我无法找到如何在本地项目中发送电子邮件。 我无法设置发件人邮箱,该方法什么都不做……

class MailHandler(BaseHandler):
def get(self):
    message = mail.EmailMessage()
    message.sender = 'my@email.com'
    message.to = 'some@email.com'
    message.subject = 'test'
    message.body = "Email test, that's all."
    message.send()
    self.render_ok()

【问题讨论】:

  • 这很正常。开发服务器不会“接触”互联网。它将如何发送电子邮件?

标签: python google-app-engine email


【解决方案1】:

您可以使用以下命令行参数设置您的 Appengine 启动器 [编辑->应用程序设置]:

--enable_sendmail --smtp_host=... --smtp_port=... --smtp_user=... --smtp_password=...

见: https://cloud.google.com/appengine/docs/python/tools/devserver#Python_Command-line_arguments

对于测试,设置本地邮件服务器很有用。

【讨论】:

    【解决方案2】:

    documentation 解释了您要查找的内容。默认情况下,它只记录消息内容。

    【讨论】:

    • 注意:如果您使用 sendmail,您的测试邮件将被几乎所有过滤器归类为垃圾邮件。
    【解决方案3】:

    单元测试在存根中收集发送的消息,并且可以在这样的测试期间/之后打印或测试:

    class EmailTestCase(unittest.TestCase):
        def setUp(self):
            self.testbed = testbed.Testbed()
            self.testbed.activate()
            self.testbed.init_mail_stub()
    
        def tearDown(self):
            mail_stub = self.testbed.get_stub(testbed.MAIL_SERVICE_NAME)
            for message in mail_stub.get_sent_messages():
                print message.body
            self.testbed.deactivate()
    
        def test_mailhandler(self):
            # put your tests here. something like
            MailHandler().get()
    

    As described here

    【讨论】:

      猜你喜欢
      • 2011-06-20
      • 2021-04-02
      • 2014-04-21
      • 1970-01-01
      • 2011-05-17
      • 2016-02-25
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      相关资源
      最近更新 更多