【问题标题】:Unable to send mail via SparkPost saved templates using python client无法使用 python 客户端通过 SparkPost 保存的模板发送邮件
【发布时间】:2017-04-11 15:50:36
【问题描述】:

我正在尝试使用 SparkPost SMTP API 发送邮件

response = spark.transmissions.send(
    recipients=['somemail@example.com'],
    text='hi',
    content={
        "template_id": "my-first-email",
        "from":{"name": "someone", "email": "no-reply@jhuthmatbolo.com"},
    },
    subject='Subject Line',
    substitution_data={
       "name": "Your Name"
    }
)

根据documentation 它应该可以工作,但我收到以下错误。

Traceback (most recent call last):
  File "sendmail.py", line 69, in <module>
    sparkpost()
  File "sendmail.py", line 65, in sparkpost
    "name": "Rupesh"
  File "/usr/local/lib/python2.7/dist-packages/sparkpost/transmissions.py", line 254, in send
    results = self.request('POST', self.uri, data=json.dumps(payload))
  File "/usr/local/lib/python2.7/dist-packages/sparkpost/base.py", line 41, in request
    **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/sparkpost/base.py", line 16, in request
    raise SparkPostAPIException(response)
sparkpost.exceptions.SparkPostAPIException: Call to https://api.sparkpost.com/api/v1/transmissions returned 422, errors:

        required field is missing Code: 1400 Description: content.from is a required field

PS- 使用 Sparkpost 提供的 Postman 示例一切正常。

【问题讨论】:

    标签: python email sparkpost


    【解决方案1】:

    当您使用存储模板时(通过设置template_id),您不需要设置contentsubject,因为它们嵌入在模板中。您可以这样拨打电话:

    response = sp.transmissions.send(
        recipients=['you@me.com'],
        template='my-template-id'
    )
    

    此外,python-sparkpost API 客户端在 SparkPost API 之上提供了一个层,因此SparkPost.transmissions.send() 的参数不是 API 的 1:1 匹配。 python-sparkpost 的完整文档是 available here

    Here's a relevant sample 也来自 Python 客户端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      • 2022-01-13
      • 2020-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      相关资源
      最近更新 更多