def email_handler(): email = PostmarkInbound(json=request.data) app.logger.debug('recipient addr = %s' % email.to()) app.logger.debug('sender addr = %s' % email.sender()) valid_recipients = [ e for e in email.to() if e.get('Email').startswith(SERVICE_EMAIL) ] if valid_recipients: sender = email.sender() addr = sender.get('Email') name = sender.get('Name') if REGISTRATION_ENABLED and email.mailbox_hash() in ENABLED_HASHES: key = register_key(addr, name) if key: key_notification(key, addr) app.logger.debug('key = %s' % key) else: disabled_notification(addr) else: disabled_notification(addr) return ''
def email_handler(): email = PostmarkInbound(json=request.data) app.logger.debug('recipient addr = %s' % email.to()) app.logger.debug('sender addr = %s' % email.sender()) valid_recipients = [e for e in email.to() if e.get('Email').startswith(SERVICE_EMAIL)] if valid_recipients: sender = email.sender() addr = sender.get('Email') name = sender.get('Name') if REGISTRATION_ENABLED and email.mailbox_hash() in ENABLED_HASHES: key = register_key(addr, name) if key: key_notification(key, addr) app.logger.debug('key = %s' % key) else: disabled_notification(addr) else: disabled_notification(addr) return ''
class PostmarkInboundTest(unittest.TestCase): def setUp(self): json_data = open('tests/fixtures/valid_http_post.json').read() self.inbound = PostmarkInbound(json=json_data) def tearDown(self): if os.path.exists('./tests/chart.png'): os.remove('./tests/chart.png') if os.path.exists('./tests/chart2.png'): os.remove('./tests/chart2.png') def test_should_have_a_subject(self): assert 'Hi There' == self.inbound.subject() def test_should_have_a_bcc(self): assert '*****@*****.**' == self.inbound.bcc() def test_should_have_a_cc(self): assert '*****@*****.**' == self.inbound.cc()[0]['Email'] def test_should_have_a_reply_to(self): assert '*****@*****.**' == self.inbound.reply_to() def test_should_have_a_mailbox_hash(self): assert 'moitoken' == self.inbound.mailbox_hash() def test_should_have_a_tag(self): assert 'yourit' == self.inbound.tag() def test_should_have_a_message_id(self): assert 'a8c1040e-db1c-4e18-ac79-bc5f64c7ce2c' == self.inbound.message_id( ) def test_should_be_from_someone(self): assert self.inbound.sender()['Name'] == 'Bob Bobson' and \ self.inbound.sender()['Email'] == '*****@*****.**' def test_should_have_a_html_body(self): assert '<p>We no speak americano</p>' == self.inbound.html_body() def test_should_have_a_text_body(self): assert '\nThis is awesome!\n\n' == self.inbound.text_body() def test_should_be_to_someone(self): assert '*****@*****.**' == self.inbound.to( )[0]['Email'] def test_should_have_header_mime_version(self): assert '1.0' == self.inbound.headers('MIME-Version') def test_should_have_header_received_spf(self): assert 'Pass (sender SPF authorized) identity=mailfrom; client-ip=209.85.160.180; helo=mail-gy0-f180.google.com; [email protected]; receiver=451d9b70cf9364d23ff6f9d51d870251569e+ahoy@inbound.postmarkapp.com' == self.inbound.headers( 'Received-SPF') def test_should_have_spam_version(self): assert 'SpamAssassin 3.3.1 (2010-03-16) onrs-ord-pm-inbound1.wildbit.com' == self.inbound.headers( 'X-Spam-Checker-Version') def test_should_have_spam_status(self): assert 'No' == self.inbound.headers('X-Spam-Status') def test_should_have_spam_score(self): assert '-0.1' == self.inbound.headers('X-Spam-Score') def test_should_have_spam_test(self): assert 'DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_PASS' == self.inbound.headers( 'X-Spam-Tests') def test_should_have_two_attachments(self): assert 2 == len(self.inbound.attachments()) def test_should_have_attachment(self): assert True == self.inbound.has_attachments() def test_attachment_should_have_content_length(self): for a in self.inbound.attachments(): assert a.content_length() is not None def test_attachment_should_have_conent_type(self): for a in self.inbound.attachments(): assert a.content_type() is not None def test_attachment_should_have_name(self): for a in self.inbound.attachments(): assert a.name() is not None def test_attachment_should_download(self): for a in self.inbound.attachments(): a.download('./tests/') assert True == os.path.exists('./tests/chart.png') assert True == os.path.exists('./tests/chart2.png') def test_attachment_to_mime(self): for a in self.inbound.attachments(): mime = a.to_mime() assert isinstance(mime, MIMEBase) assert mime.get_filename() == a.name() assert mime.get_content_type() == a.content_type() def test_attachments_as_mime(self): for a in self.inbound.attachments(as_mime=True): assert isinstance(a, MIMEBase) def test_send_date(self): assert 2012 == self.inbound.send_date().year
class PostmarkInboundTest(unittest.TestCase): def setUp(self): json_data = open('tests/fixtures/valid_http_post.json').read() self.inbound = PostmarkInbound(json=json_data) def tearDown(self): if os.path.exists('./tests/chart.png'): os.remove('./tests/chart.png') if os.path.exists('./tests/chart2.png'): os.remove('./tests/chart2.png') def test_should_have_a_subject(self): assert 'Hi There' == self.inbound.subject() def test_should_have_a_bcc(self): assert '*****@*****.**' == self.inbound.bcc() def test_should_have_a_cc(self): assert '*****@*****.**' == self.inbound.cc()[0]['Email'] def test_should_have_a_reply_to(self): assert '*****@*****.**' == self.inbound.reply_to() def test_should_have_a_mailbox_hash(self): assert 'moitoken' == self.inbound.mailbox_hash() def test_should_have_a_tag(self): assert 'yourit' == self.inbound.tag() def test_should_have_a_message_id(self): assert 'a8c1040e-db1c-4e18-ac79-bc5f64c7ce2c' == self.inbound.message_id() def test_should_be_from_someone(self): assert self.inbound.sender()['Name'] == 'Bob Bobson' and \ self.inbound.sender()['Email'] == '*****@*****.**' def test_should_have_a_html_body(self): assert '<p>We no speak americano</p>' == self.inbound.html_body() def test_should_have_a_text_body(self): assert '\nThis is awesome!\n\n' == self.inbound.text_body() def test_should_be_to_someone(self): assert '*****@*****.**' == self.inbound.to()[0]['Email'] def test_should_have_header_mime_version(self): assert '1.0' == self.inbound.headers('MIME-Version') def test_should_have_header_received_spf(self): assert 'Pass (sender SPF authorized) identity=mailfrom; client-ip=209.85.160.180; helo=mail-gy0-f180.google.com; [email protected]; receiver=451d9b70cf9364d23ff6f9d51d870251569e+ahoy@inbound.postmarkapp.com' == self.inbound.headers('Received-SPF') def test_should_have_spam_version(self): assert 'SpamAssassin 3.3.1 (2010-03-16) onrs-ord-pm-inbound1.wildbit.com' == self.inbound.headers('X-Spam-Checker-Version') def test_should_have_spam_status(self): assert 'No' == self.inbound.headers('X-Spam-Status') def test_should_have_spam_score(self): assert '-0.1' == self.inbound.headers('X-Spam-Score') def test_should_have_spam_test(self): assert 'DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_PASS' == self.inbound.headers('X-Spam-Tests') def test_should_have_two_attachments(self): assert 2 == len(self.inbound.attachments()) def test_should_have_attachment(self): assert True == self.inbound.has_attachments() def test_attachment_should_have_content_length(self): for a in self.inbound.attachments(): assert a.content_length() is not None def test_attachment_should_have_conent_type(self): for a in self.inbound.attachments(): assert a.content_type() is not None def test_attachment_should_have_name(self): for a in self.inbound.attachments(): assert a.name() is not None def test_attachment_should_download(self): for a in self.inbound.attachments(): a.download('./tests/') assert True == os.path.exists('./tests/chart.png') assert True == os.path.exists('./tests/chart2.png') def test_attachment_to_mime(self): for a in self.inbound.attachments(): mime = a.to_mime() assert isinstance(mime, MIMEBase) assert mime.get_filename() == a.name() assert mime.get_content_type() == a.content_type() def test_attachments_as_mime(self): for a in self.inbound.attachments(as_mime=True): assert isinstance(a, MIMEBase) def test_send_date(self): assert 2012 == self.inbound.send_date().year