def test_missing_values(self):
     message = Message()
     self.assertRaises(ValueError, str, message)
     
     message.author = "*****@*****.**"
     self.assertRaises(ValueError, str, message)
     
     message.subject = "Attn: Bob Dole"
     self.assertRaises(ValueError, str, message)
     
     message.to = "*****@*****.**"
     self.assertRaises(ValueError, str, message)
     
     message.plain = "Testing!"
     
     try:
         str(message)
     except ValueError:
         self.fail("Message should be valid.")
Example #2
0
    def test_missing_values(self):
        message = Message()
        self.assertRaises(ValueError, str, message)

        message.author = "*****@*****.**"
        self.assertRaises(ValueError, str, message)

        message.subject = "Attn: Bob Dole"
        self.assertRaises(ValueError, str, message)

        message.to = "*****@*****.**"
        self.assertRaises(ValueError, str, message)

        message.plain = "Testing!"

        try:
            str(message)
        except ValueError:
            self.fail("Message should be valid.")
Example #3
0
	def test_missing_values(self):
		message = Message()
		with pytest.raises(ValueError):
			unicode(message)
		
		message.author = "*****@*****.**"
		with pytest.raises(ValueError):
			unicode(message)
		
		message.subject = "Attn: Bob Dole"
		with pytest.raises(ValueError):
			unicode(message)
		
		message.to = "*****@*****.**"
		with pytest.raises(ValueError):
			unicode(message)
		
		message.plain = "Testing!"
		
		try:
			unicode(message)
		except ValueError:
			assert False, "Message should be valid."
Example #4
0
    def test_missing_values(self):
        message = Message()
        with pytest.raises(ValueError):
            unicode(message)

        message.author = "*****@*****.**"
        with pytest.raises(ValueError):
            unicode(message)

        message.subject = "Attn: Bob Dole"
        with pytest.raises(ValueError):
            unicode(message)

        message.to = "*****@*****.**"
        with pytest.raises(ValueError):
            unicode(message)

        message.plain = "Testing!"

        try:
            unicode(message)
        except ValueError:
            assert False, "Message should be valid."
def buildnewsletter(book_list):
    """Routine to send an HTML newsletter


    """
    logger.info('Pulling together the newsletter.')

    __tmp__file__loc = "tmpicon.jpg"

    mailer = Mailer(
        dict(transport=dict(use='smtp',
                            host=config.settings['SMTPSettings']['host'],
                            port=config.settings['SMTPSettings']['port'],
                            username=config.settings['SMTPSettings']['user'],
                            password=config.settings['SMTPSettings']
                            ['password'],
                            tls=config.settings['SMTPSettings']['startttls'])))

    try:

        # Perform jinja

        message_template_file = config.settings['TEMPLATE_FILE']
        message_banner_img = os.path.join(
            config.settings['TEMPLATE_DIR'],
            config.settings['TEMPLATE_BANNER_IMG'])
        message_unknown_img = os.path.join(
            config.settings['TEMPLATE_DIR'],
            config.settings['TEMPLATE_NOCOVER_IMG'])
        message_intropara_file = os.path.join(
            config.settings['TEMPLATE_DIR'],
            config.settings['TEMPLATE_INTROPARA'])

        cd = config.settings['TEMPLATE_DIR']
        logger.info(cd)

        jinja_env = jinja2.Environment(loader=jinja2.FileSystemLoader(cd))

        try:
            with open(message_intropara_file, 'r') as introparafile:
                message_intropara = introparafile.read().replace('\n', '')
                logger.info('Loaded newsletter intro paragraph.')
        except:
            message_intropara = "<p>New books added.</p>"
            logger.exception("Couldn't load intro paragraph.")
            logger.warn('Loading default newsletter intro paragraph.')

        messagebody = jinja_env.get_template(message_template_file).render(
            book_list=book_list, intropara_blk=message_intropara)

        mailer.start()

        message = Message(author=config.settings['SMTPSettings']['user'])
        message.subject = config.settings['SMTPSettings']['subject']
        message.plain = "This is only exciting if you use an HTML capable email client. Please disregard."
        message.rich = messagebody
        message.embed(message_banner_img)

        flg_unknown_embedded = False

        for book in book_list:
            if book["book_cover_id"] != "Unknown.png":
                book['cover_thumbnail'].save(__tmp__file__loc, "JPEG")
                message.embed((book["book_cover_id"]), open(__tmp__file__loc))
            elif book[
                    "book_cover_id"] == "Unknown.png" and not flg_unknown_embedded:
                message.embed(message_unknown_img)
                flg_unknown_embedded = True

        for winner in db_operations.get_dl_list():

            message.to = winner

            if config.settings['DevMode']:
                mailer.send(message)
                logger.info('DevMode - Sending email to %s', winner)
            else:
                mailer.send(message)
                logger.info('sending email to %s', winner)

    except:
        logger.exception('Error sending email.')

    mailer.stop()

    logger.info('Completed newsletter routine.')

    return
Example #6
0
logging.basicConfig(level=logging.INFO)


configuration = {
    "manager": "immediate",  # futures
    "manager.workers": 5,
    "transport": "smtp",
    "transport.host": "",
    "transport.tls": "ssl",  # None=='', required, optional
    "transport.port": 465,  # 25, 465 = SSL
    "transport.username": "",
    "transport.password": "",
    "transport.max_messages_per_connection": 5,
    "transport.debug": False,
}


if __name__ == "__main__":
    mail = Delivery(configuration)
    mail.start()

    message = Message()
    message.author = [("Alice Bevan-McGregor", "*****@*****.**")]
    message.to = [("Your Name Here", "*****@*****.**")]
    message.subject = "This is a test message."
    message.plain = "Testing!"

    mail.send(message)
    mail.stop()