|
4 | 4 | from email import message_from_string, message_from_bytes |
5 | 5 | from email.message import EmailMessage |
6 | 6 | from email.generator import Generator, BytesGenerator |
| 7 | +from email.headerregistry import Address |
7 | 8 | from email import policy |
8 | 9 | from test.test_email import TestEmailBase, parameterize |
9 | 10 |
|
@@ -291,6 +292,27 @@ def test_smtputf8_policy(self): |
291 | 292 | g.flatten(msg) |
292 | 293 | self.assertEqual(s.getvalue(), expected) |
293 | 294 |
|
| 295 | + def test_smtp_policy(self): |
| 296 | + msg = EmailMessage() |
| 297 | + msg[ "From"] = Address( addr_spec="[email protected]", display_name="Páolo") |
| 298 | + msg[ "To"] = Address( addr_spec="[email protected]", display_name="Dinsdale") |
| 299 | + msg["Subject"] = "Nudge nudge, wink, wink" |
| 300 | + msg.set_content("oh boy, know what I mean, know what I mean?") |
| 301 | + expected = textwrap.dedent("""\ |
| 302 | + From: =?utf-8?q?P=C3=A1olo?= <[email protected]> |
| 303 | + |
| 304 | + Subject: Nudge nudge, wink, wink |
| 305 | + Content-Type: text/plain; charset="utf-8" |
| 306 | + Content-Transfer-Encoding: 7bit |
| 307 | + MIME-Version: 1.0 |
| 308 | +
|
| 309 | + oh boy, know what I mean, know what I mean? |
| 310 | + """).encode().replace(b"\n", b"\r\n") |
| 311 | + s = io.BytesIO() |
| 312 | + g = BytesGenerator(s, policy=policy.SMTP) |
| 313 | + g.flatten(msg) |
| 314 | + self.assertEqual(s.getvalue(), expected) |
| 315 | + |
294 | 316 |
|
295 | 317 | if __name__ == '__main__': |
296 | 318 | unittest.main() |
0 commit comments