summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/rfc822.py27
1 files changed, 26 insertions, 1 deletions
diff --git a/Lib/rfc822.py b/Lib/rfc822.py
index 292b3c9..fbab3c8 100644
--- a/Lib/rfc822.py
+++ b/Lib/rfc822.py
@@ -272,7 +272,7 @@ class Message:
def getheader(self, name, default=None):
"""Get the header value for a name.
- This is the normal interface: it return a stripped
+ This is the normal interface: it returns a stripped
version of the header value for a given header name,
or None if it doesn't exist. This uses the dictionary
version which finds the *last* such header.
@@ -282,6 +282,31 @@ class Message:
except KeyError:
return default
get = getheader
+
+ def getheaders(self, name):
+ """Get all values for a header.
+
+ This returns a list of values for headers given more than once;
+ each value in the result list is stripped in the same way as the
+ result of getheader(). If the header is not given, return None.
+ """
+ result = []
+ current = ''
+ have_header = 0
+ for s in self.getallmatchingheaders(name):
+ if s[0] in string.whitespace:
+ if current:
+ current = "%s\n %s" % (current, string.strip(s))
+ else:
+ current = string.strip(s)
+ else:
+ if have_header:
+ result.append(current)
+ current = string.strip(s[string.find(s, ":") + 1:])
+ have_header = 1
+ if have_header:
+ result.append(current)
+ return result or None
def getaddr(self, name):
"""Get a single address from a header, as a tuple.