mirror of
https://github.com/python/cpython.git
synced 2025-01-19 06:54:52 +08:00
parent
52173d4959
commit
a0b44b5adb
@ -105,11 +105,17 @@ There are several useful utilities provided in the :mod:`email.utils` module:
|
||||
``False``. The default is ``False``.
|
||||
|
||||
|
||||
.. function:: make_msgid(idstring=None)
|
||||
.. function:: make_msgid(idstring=None, domain=None)
|
||||
|
||||
Returns a string suitable for an :rfc:`2822`\ -compliant
|
||||
:mailheader:`Message-ID` header. Optional *idstring* if given, is a string
|
||||
used to strengthen the uniqueness of the message id.
|
||||
used to strengthen the uniqueness of the message id. Optional *domain* if
|
||||
given provides the portion of the msgid after the '@'. The default is the
|
||||
local hostname. It is not normally necessary to override this default, but
|
||||
may be useful certain cases, such as a constructing distributed system that
|
||||
uses a consistent domain name across multiple hosts.
|
||||
|
||||
.. versionchanged:: 3.2 domain keyword added
|
||||
|
||||
|
||||
.. function:: decode_rfc2231(s)
|
||||
|
@ -2457,6 +2457,10 @@ multipart/report
|
||||
text/rfc822-headers
|
||||
""")
|
||||
|
||||
def test_make_msgid_domain(self):
|
||||
self.assertEqual(
|
||||
email.utils.make_msgid(domain='testdomain-string')[-19:],
|
||||
'@testdomain-string>')
|
||||
|
||||
|
||||
# Test the iterator/generators
|
||||
|
@ -148,13 +148,15 @@ def formatdate(timeval=None, localtime=False, usegmt=False):
|
||||
|
||||
|
||||
|
||||
def make_msgid(idstring=None):
|
||||
def make_msgid(idstring=None, domain=None):
|
||||
"""Returns a string suitable for RFC 2822 compliant Message-ID, e.g:
|
||||
|
||||
<20020201195627.33539.96671@nightshade.la.mastaler.com>
|
||||
|
||||
Optional idstring if given is a string used to strengthen the
|
||||
uniqueness of the message id.
|
||||
uniqueness of the message id. Optional domain if given provides the
|
||||
portion of the message id after the '@'. It defaults to the locally
|
||||
defined hostname.
|
||||
"""
|
||||
timeval = time.time()
|
||||
utcdate = time.strftime('%Y%m%d%H%M%S', time.gmtime(timeval))
|
||||
@ -164,8 +166,9 @@ def make_msgid(idstring=None):
|
||||
idstring = ''
|
||||
else:
|
||||
idstring = '.' + idstring
|
||||
idhost = socket.getfqdn()
|
||||
msgid = '<%s.%s.%s%s@%s>' % (utcdate, pid, randint, idstring, idhost)
|
||||
if domain is None:
|
||||
domain = socket.getfqdn()
|
||||
msgid = '<%s.%s.%s%s@%s>' % (utcdate, pid, randint, idstring, domain)
|
||||
return msgid
|
||||
|
||||
|
||||
|
@ -77,6 +77,7 @@ Eric Beser
|
||||
Steven Bethard
|
||||
Stephen Bevan
|
||||
Ron Bickers
|
||||
Adrian von Bidder
|
||||
David Binger
|
||||
Dominic Binks
|
||||
Philippe Biondi
|
||||
|
@ -53,6 +53,9 @@ Core and Builtins
|
||||
Library
|
||||
-------
|
||||
|
||||
- Issue #8989: email.utils.make_msgid now has a domain parameter that can
|
||||
override the domain name used in the generated msgid.
|
||||
|
||||
- Issue #9299: Add exist_ok parameter to os.makedirs to suppress the
|
||||
'File exists' exception when a target directory already exists with the
|
||||
specified mode. Patch by Ray Allen.
|
||||
|
Loading…
Reference in New Issue
Block a user