ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何将sendgrid模板与python app集成?`

2019-06-23 20:44:57  阅读:270  来源: 互联网

标签:python sendgrid


我想将我在Sendgrid模板引擎上创建的模板与我的python应用程序集成.我在GitHub上阅读了文档和源代码,但它给出了这样的错误:

HTTP 400;标头中的JSON有效但不兼容

我的源代码是:

import sendgrid
import json
import os


mail_to = raw_input("Reciever's Mail(Name <email>): ")
subject = raw_input('Subject: ')
mail_from = raw_input("Sender Mail(Name <email>): ")


API_USER = os.getenv('API_USER')
API_KEY = os.getenv('API_KEY')

sg = sendgrid.SendGridClient(API_USER, API_KEY)

plaintext = \
    """
        <strong>This mail is only for testing.</strong>
    """
htmlbody = \
    """
      Html Data
    """

header_json = {
    'filters': {
        'templates': {
            'setting': {
                'enabled': '1',
                'template_id': '6967292-382-43aa-89dd-41fcd09b3fec'
            }
        }
    }
}

message = sendgrid.Mail(headers={'X-SMTPAPI': header_json})
message.add_to(mail_to)
message.set_subject(subject)
message.set_html(htmlbody)
message.set_text(plaintext)
message.set_from(mail_from)

status, msg = sg.send(message)

print "HTTP STATUS", status

msg = json.loads(msg)

if status == 400:
    print msg

有人能告诉我如何将我的模板与我的应用程序集成吗?

解决方法:

模板支持内置于SendGrid-Python库中.从README

message = sendgrid.Mail()
message.add_filter('templates', 'enable', '1')
message.add_filter('templates', 'template_id', 'TEMPLATE-ALPHA-NUMERIC-ID')

最好让smtpapi-python库为您构建SMTPAPI标头.这实际上是作为POST参数传输的 – 而不是HTTP头.该名称来自SendGrid的Web API存在之前,它实际上是作为SMTP标头发送的.

标签:python,sendgrid
来源: https://codeday.me/bug/20190623/1274441.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有