【问题标题】:Get API result when sending SparkPost email from Django?从 Django 发送 SparkPost 电子邮件时获取 API 结果?
【发布时间】:2021-04-21 20:42:30
【问题描述】:

如果我直接通过 SparkPost python API 发送消息,它会返回如下所示的结果:

{'total_rejected_recipients': 0, 'total_accepted_recipients': 1, 'id': '1234567890'}

如果您在settings.py 中设置MAIL_BACKEND,则Django 内置了通过sparkpost 发送邮件的集成支持:

EMAIL_BACKEND = 'sparkpost.django.email_backend.SparkPostEmailBackend'
SPARKPOST_API_KEY = 'something'

在使用标准 Django 邮件方法时,Django 是否提供了访问 API 结果的方法? (send_mail() 函数或EmailMessage 类)

【问题讨论】:

    标签: python django sparkpost


    【解决方案1】:

    在使用标准 Django 邮件方法时,Django 是否提供了访问 API 结果的方法? (send_mail() 函数或 EmailMessage 类)

    好像没有。

    The source code 表明SparkPostEmailBackend.send_messages() 获得了响应但没有将其存储在任何地方:

    def send_messages(self, email_messages):
        """
        Send emails, returns integer representing number of successful emails
        """
        success = 0
        for message in email_messages:
            try:
                response = self._send(SparkPostMessage(message))
                success += response['total_accepted_recipients']
            except Exception:
                if not self.fail_silently:
                    raise
        return success
    

    也许您可以创建从SparkPostEmailBackend 扩展并覆盖send_messages() 的自定义电子邮件后端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      • 2012-05-20
      • 2019-07-12
      • 1970-01-01
      相关资源
      最近更新 更多