def CONFIRMING_UNBOUNCE(message, id_number=None, host=None): original = CONFIRM.verify('unbounce', message['from'], id_number) if original: relay.deliver(bounce.you_are_now_unbounced(message)) name, address = parseaddr(message['from']) Router.STATE_STORE.set_all(address, 'POSTING') mailinglist.enable_all_subscriptions(message['from']) return UNBOUNCED
def CONFIRMING_UNBOUNCE(message, id_number=None, host=None): original = CONFIRM.verify("unbounce", message["from"], id_number) if original: relay.deliver(bounce.you_are_now_unbounced(message)) name, address = parseaddr(message["from"]) Router.STATE_STORE.set_all(address, "POSTING") mailinglist.enable_all_subscriptions(message["from"]) return UNBOUNCED
def CONFIRMING(message, id_number=None, host=None): original = CONFIRM.verify('start', message['from'], id_number) if original: user_anon = addressing.mapping(message['from'], 'user', host) welcome = view.respond(locals(), "mail/welcome.msg", From=user_anon, To=message['from'], Subject="Welcome to MyInboxIsNotA.TV") relay.deliver(welcome) return PROTECTING else: logging.warning("Invalid confirm from %s", message['from']) return CONFIRMING
def CONFIRMING(message, id_number=None, host=None): original = CONFIRM.verify('comment', message['from'], id_number) if original: # headers are already attached from START comment.defer_to_queue(original) msg = view.respond(locals(), "mail/comment_submitted.msg", From="noreply@%(host)s", To=original['from'], Subject="Your comment has been posted.") relay.deliver(msg) return COMMENTING else: logging.debug("Invalid confirm from %s", message['from']) return CONFIRMING
def CONFIRMING_SUBSCRIBE(message, list_name=None, id_number=None, host=None): original = CONFIRM.verify(list_name, message['from'], id_number) if original: mailinglist.add_subscriber(message['from'], list_name) msg = view.respond(locals(), "mail/subscribed.msg", From="noreply@%(host)s", To=message['from'], Subject="Welcome to %(list_name)s list.") relay.deliver(msg) CONFIRM.cancel(list_name, message['from'], id_number) return POSTING else: logging.warning("Invalid confirm from %s", message['from']) return CONFIRMING_SUBSCRIBE
def CONFIRMING_UNSUBSCRIBE(message, list_name=None, id_number=None, host=None): original = CONFIRM.verify(list_name, message['from'], id_number) if original: mailinglist.remove_subscriber(message['from'], list_name) msg = view.respond(locals(), 'mail/unsubscribed.msg', From="noreply@%(host)s", To=message['from'], Subject="You are now unsubscribed from %(list_name)s.") relay.deliver(msg) CONFIRM.cancel(list_name, message['from'], id_number) return START else: logging.warning("Invalid unsubscribe confirm from %s", message['from']) return CONFIRMING_UNSUBSCRIBE
def CONFIRMING(message, id_number=None, host=None): original = CONFIRM.verify('post', message['from'], id_number) if original: name, address = parseaddr(original['from']) post_name = original['x-post-name'] post_id = post.post(post_name, address, host, original) msg = view.respond(locals(), "mail/welcome.msg", From="noreply@%(host)s", To=message['from'], Subject="Welcome, your blog is ready.") relay.deliver(msg) return POSTING else: logging.warning("Invalid confirm from %s", message['from']) return CONFIRMING
def CONFIRMING_UNSUBSCRIBE(message, list_name=None, id_number=None, host=None): original = CONFIRM.verify(list_name, message['from'], id_number) if original: mailinglist.remove_subscriber(message['from'], list_name) msg = view.respond( locals(), 'mail/unsubscribed.msg', From="noreply@%(host)s", To=message['from'], Subject="You are now unsubscribed from %(list_name)s.") relay.deliver(msg) CONFIRM.cancel(list_name, message['from'], id_number) return START else: logging.warning("Invalid unsubscribe confirm from %s", message['from']) return CONFIRMING_UNSUBSCRIBE
def CONFIRMING_SUBSCRIBE(message, group_name=None, id_number=None, host=None): #group_name = group_name.lower() if group_name else None host = host.lower() if host else None original = CONFIRM.verify(group_name, message.route_from, id_number) if original: mailinglist.add_subscriber(message.route_from, group_name) msg = view.respond(locals(), "mail/subscribed.msg", From="noreply@%(host)s", To=message['from'], Subject="Welcome to %(group_name)s group.") relay.deliver(msg) CONFIRM.cancel(group_name, message.route_from, id_number) return POSTING else: logging.warning("Invalid confirm from %s", message.route_from) return CONFIRMING_SUBSCRIBE
def START(message, list_name=None, id_number=None, host=None): """ The start state looks for confirmation emails and move users with valid confirmation emails into a posting state. We also create the user's postosaurus account (if needed) and subscription here. This prevents users from being added to a list if they don't want to be. """ mlist = mailinglist.find_list(list_name) if mlist: if CONFIRM.verify(mlist, 'confirm', message['from'], id_number): # Let them know they've been added. name, address = parseaddr(message['from']) CONFIRM.notify(relay, mlist, 'confirm', address) user = mailinglist.find_user(address) if not user: user = mailinglist.create_user(address) mailinglist.add_if_not_subscriber(address, list_name) return POSTING return START