Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ezgmail
- import re
- import pickle
- import datetime
- email_regex = r'Buyer Email[\s\n]+(.+@.+) <'
- label_id = ''
- #name - shoppya
- thirty_time_delta = datetime.timedelta(minutes=30)
- def dump_pickle(variable, name):
- with open(f'{name}.dat', 'wb') as fp:
- pickle.dump(variable, fp)
- def load_pickle(name):
- with open(f'{name}.dat', 'rb') as fp:
- return pickle.load(fp)
- try:
- scheduler = load_pickle('scheduler')
- except FileNotFoundError:
- scheduler = {}
- try:
- email_frequency_dict = load_pickle('email_frequency_dict')
- except FileNotFoundError:
- email_frequency_dict = {}
- mail_content = [{'subject': 'Thanks for your first purchase',
- 'body': 'THIS IS THE MESSAGE BODY'},
- {'subject': 'Thanks for your second purchase',
- 'body': 'THIS IS THE MESSAGE BODY'},
- {'subject': 'Thanks for your third purchase',
- 'body': 'THIS IS THE MESSAGE BODY'}]
- for email, time in scheduler.items():
- if datetime.datetime.now() > time:
- #send email
- frequency = email_frequency_dict[email]
- if frequency > 3:
- frequency = 3
- ezgmail.send(email, mail_content[frequency-1]['subject'], mail_content[frequency-1]['body'])
- else:
- continue
- for thread in ezgmail.search(f'NOT label:shoppya no-reply@shoppy.gg'):
- for message in thread.messages:
- if message.sender != 'no-reply@shoppy.gg':
- continue
- buyer_email = re.search(email_regex, message.body)
- if buyer_email:
- print(buyer_email.group(1))
- if buyer_email in email_frequency_dict:
- email_frequency_dict[buyer_email] += 1
- else:
- email_frequency_dict[buyer_email] = 1
- #add to scheduler
- scheduler[buyer_email] = datetime.datetime.now() + thirty_time_delta
- else:
- continue
- # ezgmail.addLabel(thread, label_id)
- dump_pickle(email_frequency_dict, 'email_frequency_dict')
- dump_pickle(scheduler, 'scheduler')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement