def signup(request): title = "Newsletter Sign Up" form = NewsletterSignupForm() if request.method == "POST": form.update(request.POST,request.FILES) if form.is_valid(): request.session['user_email'] = form.cleaned["email"] # submit to mailchimp mc = MailChimp('279d12598a1af566db37d6bb1c2e77bc-us7') lists = mc.lists() list_id = lists[0]['id'] try: mc.listSubscribe( id=list_id, email_address=form.cleaned['email'], send_welcome=False, replace_interests=False, update_existing=False, merge_vars={'EMAIL': form.cleaned['email']}, double_optin=False) except MailChimpError, e: pass #raise Exception("\n%s : mailchimp error: %s: %s" % (datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), e.msg, e.code )) #open("/usr/local/web/logs/mailchimp.log","a+").write("\n%s : mailchimp error: %s: %s" % (datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), e.msg, e.code )) return HttpResponseRedirect("/?msg=1")
def mailchimp_lists(self): CACHE_KEY = Social.MAILCHIMP_CACHE_KEY % self.id mailchimp_choices = cache.get(CACHE_KEY) if mailchimp_choices is None: mailchimp = MailChimp(self.mailchimp_api_key) mailchimp_choices = [ (lst['id'], lst['name']) for lst in mailchimp.lists() ] cache.set(CACHE_KEY, mailchimp_choices, 3600) return mailchimp_choices
class Mail(object): def __init__(self): self.chimp = MailChimp('c208efd742b3f02aa8d2f23a10d0a407-us2', debug=True) self.campaign_id = self.listCampaigns()[0]['id'] def listCampaigns(self): return self.chimp.lists() def listSubscribe(self, list_id, profile): return self.chimp.listSubscribe(id=list_id, email_address=profile.user.email, merge_vars={'FNAME': profile.username}, double_optin=False)