email: Factor out Message-ID creation into get_id().
authorW. Trevor King <wking@tremily.us>
Sun, 14 Apr 2013 12:43:14 +0000 (08:43 -0400)
committerW. Trevor King <wking@tremily.us>
Sun, 14 Apr 2013 12:45:16 +0000 (08:45 -0400)
This will help us avoid duplicate code when we create Content-IDs.

Signed-off-by: W. Trevor King <wking@tremily.us>
rss2email/email.py
rss2email/feed.py

index 46da48cf03fe2b2ea3b347de5b54361f3ff668f3..9e0034e88167bab5bc87ada449d05c8095fa5866 100644 (file)
@@ -32,6 +32,7 @@ import io as _io
 import smtplib as _smtplib
 import subprocess as _subprocess
 import sys as _sys
+import uuid as _uuid
 
 from . import LOG as _LOG
 from . import config as _config
@@ -130,6 +131,15 @@ def set_headers(message, sender, recipient, subject, extra_headers=None,
             encoding = guess_encoding(value, encodings)
             message[key] = _Header(value, encoding)
 
+def get_id():
+    """Return a random, universally unique ID
+
+    Conforming to RFC 2822 [1].
+
+    [1]: http://tools.ietf.org/html/rfc2822#section-3.6
+    """
+    return '<{}@dev.null.invalid>'.format(_uuid.uuid4())
+
 def get_mimetext(body, content_type='plain', config=None, section='DEFAULT'):
     """Generate a text/* `Message` instance.
 
index 7cafde92abb193322568e6b80596c620a5ffa092..378a2ea29c1abf511a48b3fd6c68f5fab6a35da5 100644 (file)
@@ -36,7 +36,6 @@ import socket as _socket
 import time as _time
 import urllib.error as _urllib_error
 import urllib.request as _urllib_request
-import uuid as _uuid
 import xml.sax as _sax
 import xml.sax.saxutils as _saxutils
 
@@ -408,7 +407,7 @@ class Feed (object):
         subject = self._get_entry_title(entry)
         extra_headers = _collections.OrderedDict((
                 ('Date', self._get_entry_date(entry)),
-                ('Message-ID', '<{}@dev.null.invalid>'.format(_uuid.uuid4())),
+                ('Message-ID', _email.get_id()),
                 ('User-Agent', 'rss2email'),
                 ('X-RSS-Feed', self.url),
                 ('X-RSS-ID', id_),