diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-05-19 07:09:42 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-05-19 07:09:42 (GMT) |
commit | ae760c0a2ccd5557bfd915c947dfbcd3ed64fd60 (patch) | |
tree | a18bb464d474948d93db0ed88877f82a02d2e132 /Lib/email/utils.py | |
parent | 315e104d11c36b9f4de0a125d639e834e06ed3e6 (diff) | |
download | cpython-ae760c0a2ccd5557bfd915c947dfbcd3ed64fd60.zip cpython-ae760c0a2ccd5557bfd915c947dfbcd3ed64fd60.tar.gz cpython-ae760c0a2ccd5557bfd915c947dfbcd3ed64fd60.tar.bz2 |
Issue #6598: Increased time precision and random number range in
email.utils.make_msgid() to strengthen the uniqueness of the message ID.
Diffstat (limited to 'Lib/email/utils.py')
-rw-r--r-- | Lib/email/utils.py | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/Lib/email/utils.py b/Lib/email/utils.py index cacb9b1..317fdfa 100644 --- a/Lib/email/utils.py +++ b/Lib/email/utils.py @@ -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 |