11import threading
2- from mailchimp import Mailchimp , ListDoesNotExistError , EmailNotExistsError , ListAlreadySubscribedError , Error
2+ from mailchimp3 import MailChimp
33from django .conf import settings
44
55
@@ -13,23 +13,33 @@ def __init__(self, email, first_name, last_name):
1313 thread .start ()
1414
1515 def print_error (self , err_msg ):
16- err_msg = 'Failed to subscribe {first} {last}({email}) to mailing list: {err_msg}' .format (
17- first = self .first_name , last = self .last_name , email = self .email , err_msg = err_msg )
16+ err_msg = "Failed to subscribe {first} {last}({email}) to mailing list: {err_msg}" .format (
17+ first = self .first_name ,
18+ last = self .last_name ,
19+ email = self .email ,
20+ err_msg = err_msg ,
21+ )
1822 print (err_msg )
1923
2024 def run (self ):
2125 if settings .MAILCHIMP_API_KEY is None :
22- self .print_error (' MAILCHIMP_API_KEY not set' )
26+ self .print_error (" MAILCHIMP_API_KEY not set" )
2327 return False
2428
2529 api_key = settings .MAILCHIMP_API_KEY
2630 list_id = settings .MAILCHIMP_SUBSCRIBE_LIST_ID
2731
28- api = Mailchimp (api_key )
32+ api = MailChimp (api_key )
2933 try :
30- merge_vars = {'FNAME' : self .first_name , 'LNAME' : self .last_name }
31- api .lists .subscribe (list_id , {'email' : self .email }, merge_vars = merge_vars )
32- except (ListDoesNotExistError , EmailNotExistsError , ListAlreadySubscribedError , Error ) as e :
34+ merge_fields = {"FNAME" : self .first_name , "LNAME" : self .last_name }
35+ api .lists .members .create (
36+ list_id ,
37+ {
38+ "email_address" : self .email ,
39+ "status" : "subscribed" ,
40+ "merge_fields" : merge_fields ,
41+ },
42+ )
43+ except (Exception ) as e :
3344 self .print_error (repr (e ))
3445 return False
35-
0 commit comments