Mark Sapiro pushed to branch master at GNU Mailman / Mailman Core


Commits:
1b4d5002 by Mark Sapiro at 2021-05-21T10:39:07-07:00
Message senders method gets all addresses from a header.

- - - - -
91a2a847 by Mark Sapiro at 2021-05-21T18:03:57+00:00
Merge branch 'send' into 'master'

Message senders method gets all addresses from a header.

See merge request mailman/mailman!868
- - - - -


3 changed files:

- src/mailman/docs/NEWS.rst
- src/mailman/email/message.py
- src/mailman/email/tests/test_message.py


Changes:

=====================================
src/mailman/docs/NEWS.rst
=====================================
@@ -51,7 +51,7 @@ Bugs
 * Some exceptions in ARC signing of some posts from HyperKitty and some from
   prod.outlook.com are now handled without shunting the message.  (Closes #885)
 * Command runner now will decode the message body before processing it.
- (Closes #859)
+  (Closes #859)
 * The ``mailinglist`` table ``info`` column is changed to Text.  (Closes #840
   and #886)
 * The mailing list administrators roster ``get_member()`` method now returns
@@ -65,8 +65,10 @@ Bugs
   accept emojis and other 4-byte unicode characters by using the utf8mb4
   character set instead of 3-byte. (Closes #891)
 * LMTP runner now sets unixfrom in incoming messages.  (Closes #904)
-* Message RFC2047-decodes and unfolds headers before looking for
-  senders. (Closes #903)
+* The ``Message`` ``senders()`` method now RFC2047-decodes and unfolds headers.
+  (Closes #903)
+* The ``Message`` ``senders()`` method now gets all the addresses from the
+  configured headers.  (Closes #905)
 
 Command line
 ------------


=====================================
src/mailman/email/message.py
=====================================
@@ -113,8 +113,9 @@ class Message(email.message.Message):
                         '',
                         str(make_header(decode_header(field_value)))
                         )
-                    name, address = email.utils.parseaddr(header_value)
-                    senders.append(address.lower())
+                    for name, address in email.utils.getaddresses(
+                            [header_value]):
+                        senders.append(address.lower())
         # Filter out invalid addresses, None and the empty string, and convert
         # to unicode.
         clean_senders = []


=====================================
src/mailman/email/tests/test_message.py
=====================================
@@ -107,6 +107,15 @@ Test content
             )
         self.assertEqual(msg.senders, ['a.use...@example.org'])
 
+    def test_senders_multiple_addresses(self):
+        msg = Message()
+        msg['From'] = 'Anne <a...@example.com>'
+        msg['Reply-To'] = 'Bart <b...@example.com>, Cate <c...@example.com>'
+        self.assertEqual(msg.senders,
+                         ['a...@example.com',
+                          'b...@example.com',
+                          'c...@example.com'])
+
     def test_user_notification_bad_charset(self):
         msg = UserNotification(
             'aper...@example.com',



View it on GitLab: 
https://gitlab.com/mailman/mailman/-/compare/7775c730b6a3225ebdcb60a8e6d8b14bc7975d06...91a2a8474d4807c683c6e4ccbcca728043a4a5a2

-- 
View it on GitLab: 
https://gitlab.com/mailman/mailman/-/compare/7775c730b6a3225ebdcb60a8e6d8b14bc7975d06...91a2a8474d4807c683c6e4ccbcca728043a4a5a2
You're receiving this email because of your account on gitlab.com.


_______________________________________________
Mailman-checkins mailing list -- mailman-checkins@python.org
To unsubscribe send an email to mailman-checkins-le...@python.org
https://mail.python.org/mailman3/lists/mailman-checkins.python.org/
Member address: arch...@jab.org

Reply via email to