From e2bcf7ccfa3ac43183cb51a1f10b02400e359d0e Mon Sep 17 00:00:00 2001 From: bkrm dahal Date: Fri, 19 Jul 2019 17:07:09 +0545 Subject: [PATCH] added args extra data for sending email --- docs/conf.py | 2 +- mailgun/email_parsing.py | 1 + mailgun/mailgun.py | 20 +++++++++++++++++++- setup.py | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 7549f18..66fd122 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -30,7 +30,7 @@ # constant name <> PROJECT_NAME = "mailgun" AUTHOR = "mailgun" -VERSION = "0.1.3" +VERSION = "0.1.4" # -- General configuration ------------------------------------------------ diff --git a/mailgun/email_parsing.py b/mailgun/email_parsing.py index 6e5d2b8..9cc1134 100644 --- a/mailgun/email_parsing.py +++ b/mailgun/email_parsing.py @@ -17,6 +17,7 @@ def parse_email(email_string: str, email_id: str, output_dir: str = "tmp"): email_id: ``str`` unique id for email output_dir: ``str`` + folder for attachments Return: Email metadata dict: ``dict`` diff --git a/mailgun/mailgun.py b/mailgun/mailgun.py index 34b0723..6f4b845 100755 --- a/mailgun/mailgun.py +++ b/mailgun/mailgun.py @@ -52,6 +52,7 @@ def send_message( html_body: str = None, text_body: str = None, files: list = None, + extra_data: dict = None, ): """ Send email @@ -66,6 +67,8 @@ def send_message( text_body: ``str`` files: ``list`` list of files + extra_data: ``dict`` + extra data for tagging and tracking Return: Response from API: ``json`` @@ -105,6 +108,9 @@ def send_message( } data.update(body) + if extra_data: + data.update(extra_data) + # add files if files: attachment = [] @@ -122,7 +128,13 @@ def send_message( return response.json() def send_message_template( - self, sender_email: str, to: str, subject: str, template_name: str, data: dict + self, + sender_email: str, + to: str, + subject: str, + template_name: str, + data: dict, + extra_data: dict = None, ): """ Send email using template @@ -136,6 +148,8 @@ def send_message_template( template_name: ``str`` data: ``str`` data for template make string from dict using ``json.dumps`` + extra_data: ``dict`` + extra data for tagging and tracking Return: Response from API: ``json`` @@ -167,6 +181,10 @@ def send_message_template( "template": template_name, "h:X-Mailgun-Variables": json.dumps(data), } + + if extra_data: + payload.update(extra_data) + url = self.base_url + "{}/messages".format(self.domain) response = requests.post(url, auth=self.auth, data=payload) return response.json() diff --git a/setup.py b/setup.py index 7726dab..e97e6a7 100755 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setup( name="mailgun3_python", - version="0.1.3", + version="0.1.4", description="Mailgun client for python", long_description=long_description, long_description_content_type="text/markdown",