Skip to content

Commit 3cbcfe6

Browse files
committed
Merge pull request #72 from puttu/email-parsing
added email address parsing
2 parents 03e2577 + 9ce4e5f commit 3cbcfe6

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

sparkpost/transmissions.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import base64
22
import json
3+
from email.utils import parseaddr
34

45
from .base import Resource
56

@@ -84,7 +85,16 @@ def _extractRecipients(self, recipients):
8485
except NameError:
8586
string_types = str # Python 3 doesn't have basestring
8687
if isinstance(recip, string_types):
87-
formatted_recipients.append({'address': {'email': recip}})
88+
name, email = parseaddr(recip)
89+
formatted_recip = {
90+
'address': {
91+
'name': name,
92+
'email': email
93+
}
94+
}
95+
if not name:
96+
del formatted_recip['address']['name']
97+
formatted_recipients.append(formatted_recip)
8898
else:
8999
formatted_recipients.append(recip)
90100
return formatted_recipients

test/test_transmissions.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,16 @@ def test_translate_keys_with_unicode_recips():
3939
]
4040

4141

42+
def test_translate_keys_for_email_parsing():
43+
t = Transmissions('uri', 'key')
44+
results = t._translate_keys(recipients=['[email protected]',
45+
'Gretel <[email protected]>'])
46+
assert results['recipients'] == [
47+
{'address': {'email': '[email protected]'}},
48+
{'address': {'name': 'Gretel', 'email': '[email protected]'}}
49+
]
50+
51+
4252
@responses.activate
4353
def test_success_send():
4454
responses.add(

0 commit comments

Comments
 (0)