Как я могу легко отправить электронное письмо с предварительным просмотром шаблона монитора кампании?

Я уже перенес некоторые из наших собственных шаблонов электронной почты в систему Campaign Monitor. Я хотел бы написать процедуру для отправки электронного письма с предварительным просмотром для выбранного шаблона. Я использую Python (https://github.com/campaignmonitor/createsend-python) .

Похоже, мне нужно создать кампанию с send_preview https://github.com/campaignmonitor/createsend-python/blob/master/createsend/campaign.py#L87. Однако мне нужно было бы создать список также, чтобы иметь объект кампании только для этой цели предварительного просмотра. Это кажется ненужным / неудобным. Я чувствую, будто падаю в кроличью нору. Есть ли более простой способ отправить электронное письмо с предварительным просмотром?


person Csaba Toth    schedule 15.03.2017    source источник
comment
Задайте тот же вопрос на codereview.stackexchange.com/search?q=django, и вы получите правильный ответ. ТАК не форум для обзора   -  person Abijith Mg    schedule 15.03.2017
comment
Это концептуальный вопрос, а не обзор. Я не включил исходный код по этой причине, это может отвлечь внимание от реального вопроса. Я попробую codereview с некоторым кодом.   -  person Csaba Toth    schedule 15.03.2017


Ответы (1)


Я обратился в службу поддержки Campaign Monitor по этому поводу и получил информацию, необходимую для создания кампании, и список для отправки тестового электронного письма. Как я понял, список может быть пустым, поскольку вы явно указываете адрес электронной почты во время send_preview. В моем случае я вставляю GUID в имя списка и кампании, чтобы гарантировать уникальность имени.

Как только электронное письмо будет отправлено, вы можете сразу удалить эти эфемерные кампании и список. Убедитесь, что вы сначала удалили кампанию, потому что вы не можете удалить список, связанный с кампанией.

cm_token = {'api_key': settings.CAMPAIGN_MONITOR_ADMIN_API_KEY}
campaign_monitor = CreateSend(cm_token)
cm_list = List(cm_token)
list_id = cm_list.create(email_client_id, "Temporary empty list for preview {}".format(uuid.uuid1()), None, None, None)
# cm_subscribers = []
# for recipient in recipient_list:
#     cm_subscriber = Subscriber(cm_token)
#     cm_subscriber.add(list_id, recipient[0], "Preview recipient {}".format(uuid.uuid1()), None, None)
#     cm_subscribers.append(cm_subscriber)
cm_campaign = Campaign(cm_token)
cm_campaign.create_from_template(
    customer_account.email_client_id,
    subject,
    "Temporary campaign for preview {}".format(template.id),  # name
    from_email,  # from_name
    from_email,
    from_email,  # reply_to
    [list_id],  # list_ids
    None,  # segment_ids
    template.template_id,
    {}  # template_content
)
cm_campaign.send_preview(recipient_list[0])
# delete temporary list and campaign
cm_campaign.delete()
cm_list.delete()
person Csaba Toth    schedule 16.03.2017