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