Esempio n. 1
0
def sync_group_with_mailgun(group_uri):
    group = get_group(group_uri)

    # check if group exists on mailgun, if not - create
    mg_group = mailgun_api.get_list(group['address'])
    if not mg_group:
        mailgun_api.create_list(group['address'],
                                description=group['description'],
                                access_level='members')

    # get list of members
    mg_members = mailgun_api.get_list_members(group['address'])
    mg_member_set = [m['address'] for m in mg_members]

    # for every member locally not in mailgun, add them
    for member in group['members']:
        if member not in mg_member_set:
            # add member to mailgun
            mailgun_api.add_list_member(group['address'], member)

    # for every member on mailgun
    for member in mg_members:
        # if unsubscribed on mailgun, remove locally
        if member['subscribed'] == False and member['address'] in group[
                'members']:
            # remove member from local group
            remove_group_member(group_uri, member['address'])

        # if on mailgun, but not locally, remove from mailgun
        if member['subscribed'] == True and member['address'] not in group[
                'members']:
            mailgun_api.remove_list_member(group['address'], member['address'])
Esempio n. 2
0
def sync_group_with_mailgun( group_uri ):
    group = get_group(group_uri)

    # check if group exists on mailgun, if not - create
    mg_group = mailgun_api.get_list(group['address'])
    if not mg_group:
        mailgun_api.create_list(group['address'], description=group['description'], access_level='members' )

    # get list of members
    mg_members = mailgun_api.get_list_members(group['address'])
    mg_member_set = [m['address'] for m in mg_members]

    # for every member locally not in mailgun, add them
    for member in group['members']:
        if member not in mg_member_set:
            # add member to mailgun
            mailgun_api.add_list_member(group['address'], member)

    # for every member on mailgun
    for member in mg_members:
        # if unsubscribed on mailgun, remove locally
        if member['subscribed'] == False and member['address'] in group['members']:
            # remove member from local group
            remove_group_member(group_uri, member['address'])

        # if on mailgun, but not locally, remove from mailgun
        if member['subscribed'] == True and member['address'] not in group['members']:
            mailgun_api.remove_list_member(group['address'], member['address'])
Esempio n. 3
0
def create_sequence(start_date, signup_close_date):
    sequence_db = db.Sequence(start_date=start_date,
                              signup_close_date=signup_close_date)
    sequence_db.save()

    mailgun_api.create_list(
        u'sequence-{0}-all@{1}'.format(sequence_db.id, settings.EMAIL_DOMAIN),
        'Sequence {0} global list'.format(sequence_db.id),
        'List for all members of sequence {0}'.format(sequence_db.id),
        'readonly')

    mailgun_api.create_campaign('sequence-{0}-campaign'.format(sequence_db.id),
                                'Sequence {0} campaign'.format(sequence_db.id))

    return sequence2dict(sequence_db)
Esempio n. 4
0
def create_sequence( start_date, signup_close_date ):
    sequence_db = db.Sequence(
        start_date = start_date,
        signup_close_date = signup_close_date
    )
    sequence_db.save()

    mailgun_api.create_list(
        u'sequence-{0}-all@{1}'.format(sequence_db.id, settings.EMAIL_DOMAIN),
        'Sequence {0} global list'.format(sequence_db.id),
        'List for all members of sequence {0}'.format(sequence_db.id),
        'readonly'
    )

    mailgun_api.create_campaign(
        'sequence-{0}-campaign'.format(sequence_db.id),
        'Sequence {0} campaign'.format(sequence_db.id)
    )

    return sequence2dict(sequence_db)
Esempio n. 5
0
def create_sequence( start_date, signup_close_date ):
    sequence_db = db.Sequence(
        start_date = start_date,
        signup_close_date = signup_close_date
    )
    sequence_db.save()

    mailgun_api.create_list(
        sequence_list_name(sequence_db.id),
        'Sequence {0} global list'.format(sequence_db.id),
        'List for all members of sequence {0}'.format(sequence_db.id),
        'readonly'
    )

    mailgun_api.create_campaign(
        sequence_campaign(sequence_db.id),
        'Sequence {0} campaign'.format(sequence_db.id)
    )

    return sequence2dict(sequence_db)