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 add_user_to_global_list(email):
    """ add user to email list that gets all emails """
    signup_db = db.UserSignup.objects.get(email=email,
                                          date_deleted__isnull=True)
    if signup_db.sequence:
        list_name = sequence_model.sequence_list_name(signup_db.sequence)
        mailgun_api.add_list_member(list_name, email)
Esempio n. 3
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. 4
0
def add_user_to_global_list( email, sequence ):
    """ add user to email list that gets all emails """
    signup_db = db.UserSignup.objects.get(
        email__iexact=email, date_deleted__isnull=True, sequence=sequence
    )
    if signup_db.sequence:
        list_name = sequence_model.sequence_list_name(signup_db.sequence)
        mailgun_api.add_list_member(list_name, email)