mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
Issue #6598: Increased time precision and random number range in
email.utils.make_msgid() to strengthen the uniqueness of the message ID.
This commit is contained in:
parent
315e104d11
commit
ae760c0a2c
3 changed files with 31 additions and 6 deletions
|
@ -202,24 +202,23 @@ def format_datetime(dt, usegmt=False):
|
|||
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>
|
||||
<142480216486.20800.16526388040877946887@nightshade.la.mastaler.com>
|
||||
|
||||
Optional idstring if given is a string used to strengthen the
|
||||
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))
|
||||
timeval = int(time.time()*100)
|
||||
pid = os.getpid()
|
||||
randint = random.randrange(100000)
|
||||
randint = random.getrandbits(64)
|
||||
if idstring is None:
|
||||
idstring = ''
|
||||
else:
|
||||
idstring = '.' + idstring
|
||||
if domain is None:
|
||||
domain = socket.getfqdn()
|
||||
msgid = '<%s.%s.%s%s@%s>' % (utcdate, pid, randint, idstring, domain)
|
||||
msgid = '<%d.%d.%d%s@%s>' % (timeval, pid, randint, idstring, domain)
|
||||
return msgid
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue