def handle(message, pseudo, stranger_address): """ Stranger emailing a pseudonym New strangers will be added as Contact. Strangers sending from invalid domain will be flagged. Args: message: InboundEmailMessage pseudo: Pseudonym of user stranger_email: str in 'x@x' format """ contact = model.get( model.Contact, pseudonym=pseudo, email=stranger_address.email ) # Create entry if new new_prefix = '' if not contact: contact = model.Contact( pseudonym=pseudo, email=stranger_address.email, name=stranger_address.name, mask=util.generate_random_string(), ) contact.put() new_prefix = 'New ' logging.info("MAIL: %sContact: %s -> %s" % ( new_prefix, stranger_address.email, pseudo.email )) # Test for spam and add link generation should_drop = prepare_message( message, pseudo, stranger_address, ) if should_drop: return message.to = pseudo.member.user.email() # This is important because it lets the user know WHO EMAILED THEM message.sender = "'%s <%s>' <%s+%s@%s>" % ( # ie "'Bob Frizzel <*****@*****.**>' <*****@*****.**>" contact.name, contact.email, pseudo.mask, contact.mask, dontspamme.config.mail_domain ) logging.debug("Body ======== \n%s" % message.html.decode()) message.send()
def handle(message, pseudo, stranger_address): """ Stranger emailing a pseudonym New strangers will be added as Contact. Strangers sending from invalid domain will be flagged. Args: message: InboundEmailMessage pseudo: Pseudonym of user stranger_email: str in 'x@x' format """ contact = model.get(model.Contact, pseudonym=pseudo, email=stranger_address.email) # Create entry if new new_prefix = '' if not contact: contact = model.Contact( pseudonym=pseudo, email=stranger_address.email, name=stranger_address.name, mask=util.generate_random_string(), ) contact.put() new_prefix = 'New ' logging.info("MAIL: %sContact: %s -> %s" % (new_prefix, stranger_address.email, pseudo.email)) # Test for spam and add link generation should_drop = prepare_message( message, pseudo, stranger_address, ) if should_drop: return message.to = pseudo.member.user.email() # This is important because it lets the user know WHO EMAILED THEM message.sender = "'%s <%s>' <%s+%s@%s>" % ( # ie "'Bob Frizzel <*****@*****.**>' <*****@*****.**>" contact.name, contact.email, pseudo.mask, contact.mask, dontspamme.config.mail_domain) logging.debug("Body ======== \n%s" % message.html.decode()) message.send()
def post(self, member, variables): if 'domain' not in variables: return self.HOME domain = variables['domain'] if domain == '' or ' ' in domain: return self.HOME # Perform action pseudo = model.Pseudonym( member=member, domains=[domain.lower()], mask=util.generate_random_string() ) pseudo.put() logging.info("WEB: %s generated mask '%s' with domain '%s'" % ( member.user.email(), pseudo.mask, domain ))