import smtplib from . import interface def hook_extract_listname(context, content): print('hook_extract_listname:') print(content) def hook_check_ml_restrictions(context, content): pass def hook_validate_poster(context, content): pass def hook_process_subscribe_queries(context, content): pass def hook_generate_rcpt_list(context, content): listname = context.get('listname', None) if not listname: raise interface.HookStopIteration('list name not found') recipients_filename = ''.join([listname, '-recipents.txt']) try: with open(recipients_filename, encoding='utf8') as fi: recipients = [recipient for recipient in fi] context['recipients'] = recipients except FileNotFoundError as e: n = interface.HookAbortError('recipients list not found') n.args.append({'listname': listname, 'recipients_filename': recipients_filename}) raise n from e def hook_send_all(context, content): listaddress = context.get('listaddress', None) if not listaddress: raise interface.HookStopIteration('list address not found') recipients = context.get('recipients', None) if not recipients: raise interface.HookStopIteration() # TODO: how to send emails here ? smtp_server = smtplib.SMTP(context.conf.get('smtp.server')) #smtp_server.set_debuglevel(1) smtp_server.sendmail(listaddress, context['recipients'], content) smtp_server.quit()