Интеграция Python и mailchimp

Итак, я застрял на этом в течение недели или около того и действительно мог бы дать несколько советов.

У меня есть простой веб-сайт, который позволяет людям подписываться на автоматическую рассылку новостей, которую я хочу рассылать. После добавления их электронной почты на сайт их адрес автоматически добавляется в аудиторию. У меня есть небольшой скрипт на Python, который затем очищает сайт, а затем, если он возвращает определенные критерии, он отправляет автоматическое электронное письмо через mailchimp всем контактам в аудитории mailchimp. У меня проблема с созданием и отправкой электронной почты через почтовый шимпанзе. Я прошел через https://mailchimp.com/developer/api/marketing/campaigns/add-campaign/ несколько раз и не может заставить его работать. Я могу успешно создать новую кампанию, а также аудиторию и тему. Однако я не могу понять, как на самом деле отправить электронное письмо с содержимым, которое я хочу внутри него. Он просто сохраняет себя как черновик и все. Когда я пытаюсь просмотреть электронное письмо, в нем ничего нет, и когда я нажимаю «Изменить» рядом с кампанией, все отмечены галочкой, кроме «контента». Я исключил часть веб-скрейпинга из своей программы, но ниже приведен тест, который я запускаю для создания и отправки через API mailchimp.

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))

Это успешно создает кампанию, за исключением контента, который я хочу добавить, и просто сохраняет электронное письмо как черновик без отправки. Итак, я думаю, мой вопрос заключается в том, как редактировать содержимое электронной почты, а затем как я на самом деле инициирую отправку.

Спасибо за любую помощь


person Patrick Walford    schedule 04.11.2020    source источник


Ответы (1)


Я также не нашел минимального примера в Интернете. Плюс примеры в документации API mailchimp сильно отсутствуют для 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='[email protected]',
    )
  )
  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))
person hansaplast    schedule 27.12.2020