def mailchimper(self): """ Property for get an Mailchimp object """ settings.use_editable() if not getattr(settings, 'MAILCHIMP_API_KEY', None): raise ImproperlyConfigured("The MAILCHIMP_API_KEY setting must " "not be empty.") return Mailchimp(settings.MAILCHIMP_API_KEY)
def client(self): if self._client is None: if self.is_madmimi(): self._client = MadMimi(settings.MADMIMI_USER, settings.MADMIMI_API_KEY) elif self.is_mailchimp(): self._client = Mailchimp(settings.MAILCHIMP_API_KEY) else: raise NotImplementedError('EmailMarketing provider %s is ' 'invalid.' % settings.CURRENT_EMAIL_MARKETING_PROVIDER) return self._client
def subscribe_to_newsletter(email, request=None): mc = Mailchimp(settings.MAILCHIMP_API_KEY) subscribed = True try: mc.lists.subscribe(settings.MAILCHIMP_LIST_ID, email={'email': email}, double_optin=False) except Exception as e: subscribed = False if request: if subscribed: messages.success(request, "You've been subscribed to the SmallsLIVE newsletter.") else: messages.error(request, "There's been an error while trying to subscribe to the SmallsLIVE newsletter.") return subscribed
def unsubscribe_from_newsletter(email, request=None): mc = Mailchimp(settings.MAILCHIMP_API_KEY) unsubscribed = True try: mc.lists.unsubscribe(settings.MAILCHIMP_LIST_ID, email={'email': email}) except Exception as e: unsubscribed = False if request: if unsubscribed: messages.success(request, "You've been unsubscribed from the SmallsLIVE newsletter.") else: messages.error(request, "There's been an error while trying to unsubscribe from the SmallsLIVE newsletter.") return unsubscribed
def run(self): if settings.MAILCHIMP_API_KEY is None: self.print_error('MAILCHIMP_API_KEY not set') return False api_key = settings.MAILCHIMP_API_KEY list_id = settings.MAILCHIMP_SUBSCRIBE_LIST_ID api = Mailchimp(api_key) try: api.lists.subscribe(list_id, {'email': self.email}) except (ListDoesNotExistError, EmailNotExistsError, ListAlreadySubscribedError, Error) as e: self.print_error(repr(e)) return False
def handle(self, *apps, **options): settings.use_editable() mc = Mailchimp(settings.MAILCHIMP_API_KEY) result_list = mc.lists.list(filters={}) # result_list = mc.lists.list(filters={'list_name': 'list_2'}) print(result_list) for mc_list in result_list['data']: result_members = mc.lists.members(mc_list['id']) pprint.pprint(result_members) result_info = mc.lists.member_info( mc_list['id'], [{ 'email': '*****@*****.**' }]) print("***********************") pprint.pprint(result_info)
def handle_noargs(self, *args, **options): env = os.environ.get('CRON_ENV') now = timezone.now() # heroku scheduler launches the task every day, we make sure it only really does the import # once a week (tuesday) if env == "heroku" and now.weekday() != 1: return mc = Mailchimp(settings.MAILCHIMP_API_KEY) campaigns = mc.campaigns.list(filters={ 'status': 'sent', 'title': 'SmallsLIVE', 'exact': False}, limit=1000) for campaign in campaigns.get('data'): if not Newsletter.objects.filter(id=campaign.get('id')).exists(): newsletter = Newsletter.objects.create( id=campaign.get('id'), title=campaign.get('title'), date=campaign.get('send_time'), link=campaign.get('archive_url') )
def __init__(self, api_key): self.mc = Mailchimp(api_key)
def handle(self, *args, **options): mailchimp = Mailchimp(settings.MAILCHIMP_KEY) return mailchimp.lists.list()['data'][0]['id']