예제 #1
0
    def test_equality_name(self):
        name = "SomeName"
        email1 = Email()
        email1.name = name
        email2 = Email()
        email2.name = name

        self.assertEqual(email1, email2)
예제 #2
0
    def test_equality_different_name(self):
        name1 = "SomeName1"
        email1 = Email()
        email1.name = name1
        name2 = "SomeName2"
        email2 = Email()
        email2.name = name2

        self.assertNotEqual(email1, email2)
예제 #3
0
    def get_message(self, **kwargs):
        """
        Get message object for email
        """
        config = get_configurations()
        message = Mail()
        if "from_email" in kwargs:
            sender = Email()
            message_content = kwargs.get("message_content", "")
            sender.name = kwargs.get("sender", config['SENDGRID']['sender'])
            sender.email = kwargs.get("from_email",
                                      config['SENDGRID']['fromemail'])
            message.from_email = sender
        if "subject" in kwargs:
            message.subject = kwargs.get("subject", "")
        if "text" in kwargs:
            content = Content("text/plain", kwargs.get("text", ""))
            message.add_content(content)
        if "html" in kwargs:
            content = Content("text/html", kwargs.get("html", ""))
            message.add_content(content)
        if "category" in kwargs:
            category = Category(kwargs.get("category", ""))
            message.add_category(category)

        personalization = self.create_personalization(**kwargs)
        if personalization:
            message.add_personalization(personalization)

        return message.get()
예제 #4
0
    def get_message(self, **kwargs):
        """
        Get message object for email
        """
        message = Mail()
        if "from_email" in kwargs:
            sender = Email()
            message_content = kwargs.get("message_content", "")
            sender.name = message_content.get("sender",
                                              emailconf.DEFAULT_SENDER)
            sender.email = kwargs.get("from_email",
                                      emailconf.DEFAULT_SENDER_EMAIL)
            message.from_email = sender
        if "subject" in kwargs:
            message.subject = kwargs.get("subject", "")
        if "text" in kwargs:
            content = Content("text/plain", kwargs.get("text", ""))
            message.add_content(content)
        if "html" in kwargs:
            content = Content("text/html", kwargs.get("html", ""))
            message.add_content(content)
        if "category" in kwargs:
            category = Category(kwargs.get("category", ""))
            message.add_category(category)

        personalization = self.create_personalization(**kwargs)
        if personalization:
            message.add_personalization(personalization)

        return message.get()
예제 #5
0
    def _process_email_addr(self, email_addr):
        from_name, from_email = rfc822.parseaddr(email_addr)

        # Python sendgrid client should improve
        # sendgrid/helpers/mail/mail.py:164
        if not from_name:
            from_name = None
        email = Email()
        email.email = from_email
        email.name = from_name
        return email
예제 #6
0
def sendmail(subject, content, to):
    api_key = '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'
    sg = SendGridAPIClient(apikey=api_key)

    mail = Mail()
    email = Email()
    email.email = '*****@*****.**'
    email.name = 'Openwob'
    mail.from_email = email
    mail.subject = u'Openwob: ' + subject

    personalization = Personalization()
    for address in to:
        personalization.add_to(Email(address))
    mail.add_personalization(personalization)

    mail.add_content(Content("text/plain", content))

    sg.client.mail.send.post(request_body=mail.get())
예제 #7
0
def send_sendgrid(sendgrid_api_key=None,
                  github_email_template=None,
                  github_user_emails=None):

    assert sendgrid_api_key, "SendGrid API key is required"

    sg = SendGridAPIClient(apikey=sendgrid_api_key)

    metadata = github_email_template.metadata

    from_email = Email(metadata['from'])
    from_email.name = metadata['from_name']
    for ge in github_user_emails:

        # Add github_user into metadata
        metadata['user'] = ge

        # Render content with metadata
        content = Content("text/html",
                          github_email_template.render_content(metadata))

        # Render subject with metadata
        subject = template_env.from_string(
            metadata['subject']).render(metadata)

        to_email = Email(ge.email)
        mail = Mail(from_email, subject, to_email, content)
        _body = mail.get()

        # Add custom args for log fields
        _custon = {}
        for key, value in metadata.iteritems():
            if key not in ESSENTIAL_FIELDS:
                _custon[key] = value
        _custon['repository'] = metadata['repository']
        _body['custom_args'] = _custon

        response = sg.client.mail.send.post(request_body=_body)

        if response.status_code > 300:
            # More than 300 means something wrong, do nothing.
            sys.exit()
예제 #8
0
def send_sendgrid(sendgrid_api_key=None, github_email_template=None, github_user_emails=None):

    assert sendgrid_api_key, "SendGrid API key is required"

    sg = SendGridAPIClient(apikey=sendgrid_api_key)

    metadata = github_email_template.metadata

    from_email = Email(metadata['from'])
    from_email.name = metadata['from_name']
    for ge in github_user_emails:

        # Add github_user into metadata
        metadata['user'] = ge

        # Render content with metadata
        content = Content("text/html", github_email_template.render_content(metadata))

        # Render subject with metadata
        subject = template_env.from_string(metadata['subject']).render(metadata)

        to_email = Email(ge.email)
        mail = Mail(from_email, subject, to_email, content)
        _body = mail.get()

        # Add custom args for log fields
        _custon = {}
        for key, value in metadata.iteritems():
            if key not in ESSENTIAL_FIELDS:
                _custon[key] = value
        _custon['repository'] = metadata['repository']
        _body['custom_args'] = _custon

        response = sg.client.mail.send.post(request_body=_body)

        if response.status_code > 300:
            # More than 300 means something wrong, do nothing.
            sys.exit()
예제 #9
0
    def test_add_unicode_name_with_comma(self):
        email = Email()
        name = u"Name, Some"
        email.name = name

        self.assertEqual(email.name, u'"' + name + u'"')
예제 #10
0
    def test_add_name_with_comma(self):
        email = Email()
        name = "Name, Some"
        email.name = name

        self.assertEqual(email.name, '"' + name + '"')
예제 #11
0
    def test_empty_obj_add_name(self):
        email = Email()
        name = "SomeName"
        email.name = name

        self.assertEqual(email.name, name)
예제 #12
0
    def test_add_unicode_name_with_comma(self):
        email = Email()
        name = u"Name, Some"
        email.name = name

        self.assertEqual(email.name, u'"' + name + u'"')
예제 #13
0
    def test_add_name_with_comma(self):
        email = Email()
        name = "Name, Some"
        email.name = name

        self.assertEqual(email.name, '"' + name + '"')
예제 #14
0
    def test_empty_obj_add_name(self):
        email = Email()
        name = "SomeName"
        email.name = name

        self.assertEqual(email.name, name)