Add extra headers to the e-mail messages
[stgit] / stgit / commands / mail.py
index 88e9241..470cf65 100644 (file)
@@ -20,7 +20,7 @@ from optparse import OptionParser, make_option
 
 from stgit.commands.common import *
 from stgit.utils import *
-from stgit import stack, git
+from stgit import stack, git, basedir, version
 from stgit.config import config
 
 
@@ -202,6 +202,15 @@ def __build_address_headers(options):
         headers_end = headers_end[:-2] + '\n'
     return headers_end
 
+def __build_extra_headers():
+    """Build extra headers like content-type etc.
+    """
+    headers  = 'Content-Type: text/plain; charset=utf-8; format=fixed\n'
+    headers += 'Content-Transfer-Encoding: 8bit\n'
+    headers += 'User-Agent: StGIT/%s\n' % version.version
+
+    return headers
+
 def __build_cover(tmpl, total_nr, msg_id, options):
     """Build the cover message (series description) to be sent via SMTP
     """
@@ -214,6 +223,7 @@ def __build_cover(tmpl, total_nr, msg_id, options):
     if options.refid:
         headers_end += "In-Reply-To: %s\n" % options.refid
         headers_end += "References: %s\n" % options.refid
+    headers_end += __build_extra_headers()
 
     if options.version:
         version_str = ' %s' % options.version
@@ -293,6 +303,7 @@ def __build_message(tmpl, patch, patch_nr, total_nr, msg_id, ref_id, options):
     if ref_id:
         headers_end += "In-Reply-To: %s\n" % ref_id
         headers_end += "References: %s\n" % ref_id
+    headers_end += __build_extra_headers()
 
     if options.version:
         version_str = ' %s' % options.version
@@ -344,8 +355,6 @@ def func(parser, options, args):
     """Send the patches by e-mail using the patchmail.tmpl file as
     a template
     """
-    if not config.has_option('stgit', 'smtpserver'):
-        raise CmdException, 'smtpserver not defined'
     smtpserver = config.get('stgit', 'smtpserver')
 
     smtpuser = None
@@ -426,7 +435,7 @@ def func(parser, options, args):
     if options.sleep != None:
         sleep = options.sleep
     else:
-        sleep = 2
+        sleep = config.getint('stgit', 'smtpdelay')
 
     # send the cover message (if any)
     if options.cover or options.edit:
@@ -434,7 +443,7 @@ def func(parser, options, args):
         if options.cover:
             tfile_list = [options.cover]
         else:
-            tfile_list = [os.path.join(git.get_base_dir(), 'covermail.tmpl'),
+            tfile_list = [os.path.join(basedir.get(), 'covermail.tmpl'),
                           os.path.join(sys.prefix,
                                        'share/stgit/templates/covermail.tmpl')]
 
@@ -466,7 +475,7 @@ def func(parser, options, args):
     if options.template:
         tfile_list = [options.template]
     else:
-        tfile_list = [os.path.join(git.get_base_dir(), 'patchmail.tmpl'),
+        tfile_list = [os.path.join(basedir.get(), 'patchmail.tmpl'),
                       os.path.join(sys.prefix,
                                    'share/stgit/templates/patchmail.tmpl')]
     tmpl = None