示例#1
0
def test_send_valid_email(handler: MongoConnection, mail_client: smtplib.SMTP):
    add_test_user(handler)

    msg = create_msg()
    mail_client.send_message(msg)

    username, domain = split_email_addr(msg['To'])
    assert len(handler.get_emails(username=username, domain=domain)) > 0
示例#2
0
 def add_email(self, to_addr, from_addr, body):
     if not validate_email_addr(to_addr):
         raise ValueError('To Address not valid: ' + to_addr)
     user, domain = split_email_addr(to_addr)
     user_obj = self.get_user(username=user, domain=domain)
     email = Email(from_addr=from_addr,
                   to_addr=to_addr,
                   body=body,
                   user_ref=user_obj)
     email.save()
示例#3
0
 async def handle_RCPT(self, server, session, envelope, address,
                       rcpt_options):
     username, domain = split_email_addr(address)
     try:
         if not validate_email_addr(address):
             return self.response_error
         if connection.get_user(username, domain):
             envelope.rcpt_tos.append(address)
             return self.response_ok
     except:
         return self.response_error
示例#4
0
 async def handle_DATA(self, server, session, envelope):
     try:
         to_addresses = envelope.rcpt_tos
         for to_addr in to_addresses:
             user, domain = split_email_addr(to_addr)
             if connection.get_user(user, domain):
                 from_addr = envelope.mail_from
                 content = envelope.content.decode('utf-8')
                 connection.add_email(from_addr=from_addr,
                                      to_addr=to_addr,
                                      body=content)
         return self.response_ok
     except:
         return self.response_error
示例#5
0
def test_email(handler: MongoConnection):
    from_addr = '*****@*****.**'
    to_addr = '*****@*****.**'
    body = 'This is just a test'
    username, domain = split_email_addr(to_addr)

    handler.add_domain(domain)
    handler.add_user(username, domain)
    handler.add_email(to_addr=to_addr, from_addr=from_addr, body=body)

    emails = handler.get_emails(username=username, domain=domain)
    has_match = False
    for email in emails:
        if email.from_addr == from_addr and email.to_addr == to_addr and email.body == body:
            has_match = True

    assert has_match