2017-03-15 7 views
0

私は既に独自のメールテンプレートの一部をCampaign Monitorのシステムに移行しました。選択したテンプレートのプレビュー電子メールを送信するルーチンを作成したいと思います。私はPython(https://github.com/campaignmonitor/createsend-python)を使用しています。Campaign Monitorテンプレートのプレビューメールを簡単に送信するにはどうすればよいですか?

私はsend_previewhttps://github.com/campaignmonitor/createsend-python/blob/master/createsend/campaign.py#L87の機能を持つキャンペーンを作成する必要がありますように見えます。しかし、このプレビュー目的にのみキャンペーンオブジェクトを使用するためにもリストを作成する必要があります。これは不必要な/厄介なように感じる。私はウサギの穴を倒しているような気がする。プレビューメールを送信する簡単な方法はありますか?

+0

http://codereview.stackexchange.com/search?q=djangoで同じ質問をすると、適切なフィードバックが得られます。これはレビューのフォーラムではありません –

+0

これは概念的な質問ではなく、レビューです。私はその理由のためにソースコードを含んでいませんでした、それは本当の質問から焦点を外すかもしれません。私はいくつかのコードでcodereviewを試してみましょう。 –

答えて

0

この問題について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() 
関連する問題