使用Mautic API创建电子邮件的文档是: https://developer.mautic.org/#create-email
如果未指定参数列表,我无法创建电子邮件。 列表参数的指定如下:
列出数组应添加到细分电子邮件中的细分ID数组
如何使用 Python 通过HTTP post发送参数列表,以便Mautic API可以解决它?
这会创建一个类型为" template"的电子邮件。 (默认)在Mautic ......
emailData = {
'name': 'Email-teste',
'subject': 'Assunto teste',
'isPublished': '1',
'language': 'pt_BR',`enter code here`
'customHtml' : '<strong>html do email<strong>'
}
但我需要的是创建一个类型为&#34; 列表&#34;的电子邮件。
为此,必须指定每个列表ID。 列表是Mautic中的细分...... 我有一个ID为7的片段!
如何使用POST(Python请求)将段ID发送到Mautic API?
emailData = {
'name': 'Email-teste',
'subject': 'Assunto teste',
'emailType': 'list',
'lists': '7',
'isPublished': '1',
'language': 'pt_BR',
'customHtml' : '<strong>html do email<strong>'
}
我尝试了很多方法......我总是得到错误的错误:
u'errors': [{u'code': 400,
u'details': {u'lists': [u'This value is not valid.']},
u'message': u'lists: This value is not valid.'}]}
我确信我有一个ID为7的片段,正如我在Mautic界面中看到的那样。
的修改版本答案 0 :(得分:2)
在Python中使用请求时,我生成了一个url安全的Payload字符串,如下所示,以便将列表ID传递给段电子邮件:
lists%5B%5D=7
等于
lists[]=7
用简单的脚本。所以你必须将[]直接放在键名后面。
为了创建一个电子邮件作为列表(段电子邮件),附带一个段,在邮递员的帮助下生成以下代码:
import requests
url = "https://yourmauticUrl"
payload = "customHtml=%3Ch1%3EHello%20World%3C%2Fh1%3E&name=helloworld&emailType=list&lists%5B%5D=7"
headers = {
'authorization': "your basic auth string",
'content-type': "application/x-www-form-urlencoded",
'cache-control': "no-cache"
}
response = requests.request("PATCH", url, data=payload, headers=headers)
print(response.text)
看看你的特定问题,我可以想象你的代码应该是这样的(尽管我对你的python lib不熟悉):
emailData = {
'name': 'Email-teste',
'subject': 'Assunto teste',
'emailType': 'list',
'lists[]': '7',
'isPublished': '1',
'language': 'pt_BR',
'customHtml' : '<strong>html do email<strong>'
}
希望这有帮助!
答案 1 :(得分:0)
根据您链接的API文档,lists
需要:
应添加到细分电子邮件
的细分ID数组
但是,您没有在列表(数组)中发送lists
的值。相反,你应该尝试:
emailData = {
'name': 'Email-teste',
'subject': 'Assunto teste',
'emailType': 'list',
'lists': ['7'],
'isPublished': '1',
'language': 'pt_BR',
'customHtml' : '<strong>html do email<strong>'
}
答案 2 :(得分:0)
您需要将数据作为原始json发送,这是请求的示例:
def create_contact_mautic(email, firstname, lastname):
params = {"email": email}
params.update({"firstname": firstname})
params.update({"lastname": lastname})
url = '<your mautic url>/api/contacts/new'
response = requests.request('POST', url, data=json.dumps(params), headers=headers, auth=('<your login>','<your password>'))
return response.text
秘密在 data = json.dumps(params),可将您的参数转换为原始json