git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [StGit PATCH] mail: Ask for the SMTP credentials before sending the messages

From
CMCatalin Marinas <catalin.marinas@gmail.com>
Date
Mar 1, 2010, 15:46 UTC
Message-ID
<b0943d9e1003010746l1d4208bas48fcfba36efa5605@mail.gmail.com>
In-Reply-To
<1266015411.25535.21.camel@mj>
On 12 February 2010 22:56, Pavel Roskin <proski@gnu.org> wrote:
Show 7 quoted lines
> On Fri, 2010-02-12 at 16:11 +0000, Catalin Marinas wrote:
>> The original implementation was asking for the SMTP password on every
>> patch sent. This patch only asks the password once before sending or
>> even editing the cover message and patches.
>
> I don't have time to investigate at the moment, but "make test" fails in
> t1900-mail.sh on the "proposed" branch, which includes this patch:

The patch was converting the message headers to Header objects rather than strings so that the long-line folding is done using "\n " rather than "\n\t" (Outlook cannot handle the latter correctly). But it looks like the Python library assumes that they are strings and getting "content-type" fails (I would say Python bug).

Anyway, I change the patch so that it only converts the the Subject header which is the one that bothers me most:

commit 1b0c0113861681974b8905dbe10a57f6831ecb87
Author: Catalin Marinas <catalin.marinas@gmail.com>
Date:   Fri Feb 12 15:36:37 2010 +0000
    mail: Use space rather than tab for long subject header folding
    The default Python implementation (at least 2.5 and earlier) fold long
    e-mail header lines by inserting "\n\t". This causes issues with some
    e-mail clients that remove both "\n\t". The RFC2822 shows that folding
    should be done with "\n ". The Python workaround is to use a Header
    object instead of a string when setting the message headers.
    Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
diff --git a/stgit/commands/mail.py b/stgit/commands/mail.py
index d0334b4..ed55fd9 100644
--- a/stgit/commands/mail.py
+++ b/stgit/commands/mail.py
@@ -426,6 +426,13 @@ def __encode_message(msg):
         new_val = ' '.join(words)
         msg.replace_header(header, new_val)

+    # replace the Subject string with a Header() object otherwise the long
+    # line folding is done using "\n\t" rather than "\n ", causing issues with
+    # some e-mail clients
+    subject = msg.get('subject', '')
+    msg.replace_header('subject',
+                       email.Header.Header(subject, header_name = 'subject'))
+
     # encode the body and set the MIME and encoding headers
     if msg.is_multipart():
         for p in msg.get_payload():
-- 
Catalin
Previous: Pavel Roskin
Message 4 of 4 in “mail: Ask for the SMTP credentials before sending the messages”
  1. mail: Ask for the SMTP credentials before sending the messagesCatalin Marinas, Feb 12, 2010
  2. Pavel RoskinFeb 12, 2010
  3. Pavel RoskinFeb 12, 2010
  4. Catalin MarinasMar 1, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.