Python 和 mailchimp 集成

Posted

技术标签:

【中文标题】Python 和 mailchimp 集成【英文标题】:Python and mailchimp integration 【发布时间】:2021-02-17 06:57:05 【问题描述】:

所以我已经坚持了一个星期左右,真的可以做一些建议。

我有一个基本网站,允许人们注册我想要发送的自动通讯。在网站上添加他们的电子邮件后,他们的地址会自动添加到受众中。 我运行了一个小的 python 脚本,然后网络抓取一个站点,然后如果返回某个标准,它将通过 mailchimp 向 mailchimp 受众中的所有联系人发送一封自动电子邮件。 我遇到的问题实际上是通过邮件黑猩猩创建和发送电子邮件。 我已经通过https://mailchimp.com/developer/api/marketing/campaigns/add-campaign/ 几次,似乎无法让它工作。我能够成功地创建一个新的活动以及受众和主题行。但是,我无法锻炼如何实际发送包含我想要的内容的电子邮件。它只是将自己保存为草稿,仅此而已。 当我尝试预览电子邮件时,其中没有任何内容,当我单击广告系列旁边的编辑时,除了“内容”之外,所有内容都被勾选。 我已经排除了我的程序的网络抓取部分,但下面是我正在运行以创建并通过 mailchimp api 发送的测试

import mailchimp_marketing as MailchimpMarketing
from mailchimp_marketing.api_client import ApiClientError
from mailchimp3 import MailChimp
data = 
            "recipients" :
            
                "list_id": 'XXXXXXXX'
            ,
            "settings":
            
                "subject_line": 'Subject of email',
                "from_name": 'from_name',
                "reply_to": 'reply_email',
            ,
            "type": "regular"
        

try:
  client = MailchimpMarketing.Client()
  #print(client)
  client.set_config(
    "api_key": "XXXXXXXXXXXXXXXX",
    "server": "XXXXXXX"
  )
  #client = MailChimp(mc_api='XXXXXXXXXXXX', mc_user="XXXXXXXXX")
  client.campaigns.create(data)
  response = client.campaigns.get('campaign_id')
  #client.campaigns.send()
  print(response)
except ApiClientError as error:
  print("Error: ".format(error.text))

这成功创建了广告系列,但没有我想要添加的内容,并且只是将电子邮件保存为草稿而不发送。所以我想我的问题是如何编辑电子邮件内容,然后我如何实际启动发送。

感谢您的帮助

【问题讨论】:

【参考方案1】:

我也没有在网上找到一个最小的例子。另外,mailchimp api 文档中的示例严重缺乏 python(只有 curl 似乎是正确的)。这是一个最小的例子:

from mailchimp_marketing import Client, api_client

# find this out at https://mailchimp.com/en/help/about-api-keys/
API_KEY = '…'

# log into your Mailchimp account and look at the URL in your browser.
# You’ll see something like https://us19.admin.mailchimp.com/
# the us19 part is the server prefix.
SERVER_PREFIX = 'us19'

try:
  client = Client()
  client.set_config(
    "api_key": API_KEY,
    "server": SERVER_PREFIX
  )

# find out list id: https://mailchimp.com/en/help/find-audience-id/
  campaign_data = dict(
    type='regular',
    recipients=dict(list_id='…'),
    settings=dict(
      subject_line='lorem ipsum',
      from_name='John Doe',
      reply_to='john@doe.com',
    )
  )
  campaign = client.campaigns.create(campaign_data)
  print(campaign)
  campaign_id = campaign['id']
  content_data = dict(
    plain_text='lorem ipsum',
    html='<p><strong>lorem</strong><br />ipsum</p>'
  )
  response = client.campaigns.set_content(campaign_id, content_data)
  print(response)

  response = client.campaigns.send(campaign_id)
  print(response)
except api_client.ApiClientError as e:
  print("Error: ".format(error.text))

【讨论】:

以上是关于Python 和 mailchimp 集成的主要内容,如果未能解决你的问题,请参考以下文章

用于电子书下载的 MailChimp 和 Wordpress 集成

将 MailChimp 与 Django 用户工作流集成

TabError:缩进中制表符和空格的使用不一致 - 集成 MailChimp Django

发生一个或多个错误。(发送请求时发生错误)Mailchimp 列表集成

AJAX Mailchimp 注册表单集成

Java 中的 MailChimp 集成