Example #1
0
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()
Example #2
0
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()
Example #3
0
 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
     ))