0

我正在尝试使用 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"
    }
)

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

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 示例,一切正常。

4

1 回答 1

3

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

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

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

这也是来自 Python 客户端的相关示例。

于 2017-04-11T16:17:16.563 回答