Re: [PATCH] cli/insert: do not lose the SMTP envelope
authorJani Nikula <jani@nikula.org>
Sun, 3 Jan 2016 16:04:39 +0000 (18:04 +0200)
committerW. Trevor King <wking@tremily.us>
Sat, 20 Aug 2016 21:50:20 +0000 (14:50 -0700)
ec/49cb335deca2298d5dc123101d872f8730321c [new file with mode: 0644]

diff --git a/ec/49cb335deca2298d5dc123101d872f8730321c b/ec/49cb335deca2298d5dc123101d872f8730321c
new file mode 100644 (file)
index 0000000..e841d2f
--- /dev/null
@@ -0,0 +1,181 @@
+Return-Path: <jani@nikula.org>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by arlo.cworth.org (Postfix) with ESMTP id 514B66DE17DB\r
+ for <notmuch@notmuchmail.org>; Sun,  3 Jan 2016 08:05:35 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at cworth.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.545\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.545 tagged_above=-999 required=5 tests=[AWL=0.175,\r
+  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7,\r
+ RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=disabled\r
+Received: from arlo.cworth.org ([127.0.0.1])\r
+ by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id 5NJMFwMAXlTQ for <notmuch@notmuchmail.org>;\r
+ Sun,  3 Jan 2016 08:05:32 -0800 (PST)\r
+Received: from mail-wm0-f51.google.com (mail-wm0-f51.google.com\r
+ [74.125.82.51]) by arlo.cworth.org (Postfix) with ESMTPS id 949C36DE17BE for\r
+ <notmuch@notmuchmail.org>; Sun,  3 Jan 2016 08:05:32 -0800 (PST)\r
+Received: by mail-wm0-f51.google.com with SMTP id u188so122792982wmu.1\r
+ for <notmuch@notmuchmail.org>; Sun, 03 Jan 2016 08:05:32 -0800 (PST)\r
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r
+ d=nikula-org.20150623.gappssmtp.com; s=20150623;\r
+ h=from:to:subject:in-reply-to:references:user-agent:date:message-id\r
+ :mime-version:content-type;\r
+ bh=hcxOWN7jpUJBVQTeHt21fqYFjiP3Z7vffUE4+5EbpCw=;\r
+ b=Y1Igp7Hr2xi9e66qBtg0EdLJ2S/MxLD8ZWU5RkOfP5vJPPJQOeZMjrl9dY7uw2lpUm\r
+ vpHZEGbftyLalOpq/GWe2BYV/RL3pgWamRAjpw3ZnGUgorzDWcPm4mR1nxmJDzvReOvu\r
+ KF9EJvYy2MMtu8Q+MNdMZeSbNfvAS0Vz0jGk41FTF+g9sRZ8+VeYYKybMAIDLCwvDw7I\r
+ xUOEYydQCPedcWRgsZZ0yAxvyBvtUAtCzKVvZ8wh0nI7hp5hJWg1hKq/x92w1nRWW6m7\r
+ NgkLbwxisvXz1BTonkWSJDx917YtoXnjmycCqPVOkii+M7qOyFpy9zxiB8G0JTq3m9+9\r
+ EDUQ==\r
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r
+ d=1e100.net; s=20130820;\r
+ h=x-gm-message-state:from:to:subject:in-reply-to:references\r
+ :user-agent:date:message-id:mime-version:content-type;\r
+ bh=hcxOWN7jpUJBVQTeHt21fqYFjiP3Z7vffUE4+5EbpCw=;\r
+ b=X/BjVEib05otT1PuGUdx/0KgsF0fdniwpvUNvx6kC+s7M9POg+gAM1qGJwRzzGK+Sx\r
+ uBUFF4OvtiXWbSOSXX8ZPhWfvwhTLCxfHn74WJ2patqLIExtH+fHDo9jK2Z74x7eUUsu\r
+ C5YWH03VoKTsNR5+SRmwL7joRGMs/q+I0fKzQJ6QOVYm7Q2EM0No/uMWfEUyYn/i/uOw\r
+ tulXTzYMxGI5H8P9DUwDSDaLQGHZ5z8AFQ6fO1zPuqcy6qtfC16FzcOCnkzeu34UVGPi\r
+ AhU3zHhxI7Hkz1t3HVyU+2Vz5rtQT98j7WVJySkUJIxAk8sqt170+L263/6xWrwQzdkp\r
+ 6GFw==\r
+X-Gm-Message-State: ALoCoQlaDZxJ5zVXMtGqrjRsSVU+yVt2Yds3MWNBitf8yb1cBcgy4Tuxzn/zmaS/vV8v+ISojGd+fOjXSVz9V9JBRz4f1thRbA==\r
+X-Received: by 10.194.6.37 with SMTP id x5mr77378888wjx.178.1451837130548;\r
+ Sun, 03 Jan 2016 08:05:30 -0800 (PST)\r
+Received: from localhost (mobile-access-bceec9-49.dhcp.inet.fi.\r
+ [188.238.201.49])\r
+ by smtp.gmail.com with ESMTPSA id ft4sm81742162wjb.37.2016.01.03.08.05.29\r
+ (version=TLSv1/SSLv3 cipher=OTHER);\r
+ Sun, 03 Jan 2016 08:05:29 -0800 (PST)\r
+From: Jani Nikula <jani@nikula.org>\r
+To: J Farkas <jf.hyqohaczlksw4tx6ae@l2015aftruuq.dns007.net>,\r
+ notmuch@notmuchmail.org\r
+Subject: Re: [PATCH] cli/insert: do not lose the SMTP envelope\r
+In-Reply-To: <1451647279.42.86b0a8ab@201601.l2015aftruuq.dns007.net>\r
+References: <1451647279.42.86b0a8ab@201601.l2015aftruuq.dns007.net>\r
+User-Agent: Notmuch/0.21+34~ge1fb729 (http://notmuchmail.org) Emacs/24.4.1\r
+ (x86_64-pc-linux-gnu)\r
+Date: Sun, 03 Jan 2016 18:04:39 +0200\r
+Message-ID: <87bn92wsx4.fsf@nikula.org>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.20\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <https://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch/>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <https://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Sun, 03 Jan 2016 16:05:35 -0000\r
+\r
+On Fri, 01 Jan 2016, J Farkas <jf.hyqohaczlksw4tx6ae@l2015aftruuq.dns007.net> wrote:\r
+> From: Janos Farkas <chexum+dev@gmail.com>\r
+> Subject: [PATCH] cli/insert: do not lose the SMTP envelope\r
+>\r
+> Make sure we store the envelope sender/recipient if provided by\r
+> qmail-command(8) in $RPLINE and $DTLINE.\r
+> ---\r
+>\r
+> I just realised that the messages delivered directly into maildir don't have\r
+> the usual envelope addresses that qmail provides.  This is a piece of\r
+> information that's important to (at least my) troubleshooting, so I created a\r
+> patch that seems to work well, applies cleanly to master (and 0.21), and\r
+> provided a NEWS entry should it be necessary.\r
+\r
+I'd be more interested in seeing some tests for this...\r
+\r
+>\r
+>  NEWS             |  9 +++++++++\r
+>  notmuch-insert.c | 28 ++++++++++++++++++++++++++++\r
+>  2 files changed, 37 insertions(+)\r
+>\r
+> diff --git a/NEWS b/NEWS\r
+> index 6681699..13d45c8 100644\r
+> --- a/NEWS\r
+> +++ b/NEWS\r
+> @@ -1,3 +1,12 @@\r
+> +\r
+> +\r
+> +`notmuch insert` records the envelope addresses if available\r
+> +\r
+> +  If the caller provides this information as qmail-command(8) does in\r
+> +  the RPLINE and DTLINE environment variables, then notmuch insert will\r
+> +  record it in the maildir file.\r
+\r
+We usually refer to message files. Perhaps you should also mention what\r
+the RPLINE and DTLINE variables should contain.\r
+\r
+> +\r
+> +\r
+>  Notmuch 0.21 (2015-10-29)\r
+>  =========================\r
+>  \r
+> diff --git a/notmuch-insert.c b/notmuch-insert.c\r
+> index 5205c17..ecc0fa0 100644\r
+> --- a/notmuch-insert.c\r
+> +++ b/notmuch-insert.c\r
+> @@ -284,6 +284,26 @@ copy_fd (int fdout, int fdin)\r
+>  }\r
+>  \r
+>  /*\r
+> + * Write zero (and LF) terminated string to the output fd.  It's expected to\r
+> + * come from getenv(), so it's not checked for correctness.  NULL or empty\r
+> + * string is ignored, successfully.\r
+> + * Return TRUE on success, FALSE on errors.\r
+> + */\r
+> +static notmuch_bool_t\r
+> +write_header (int fdout, const char *hdr)\r
+> +{\r
+> +    ssize_t written,to_write;\r
+> +\r
+> +    if (hdr && (to_write = strlen (hdr))) {\r
+> +        written = write (fdout, hdr, to_write);\r
+> +    if (written != to_write)\r
+> +        return FALSE;\r
+> +    }\r
+\r
+It's not an error for write() to return prematurely with written <\r
+to_write. Please see the write(2) man page and the copy_fd()\r
+implementation in this file.\r
+\r
+BR,\r
+Jani.\r
+\r
+> +\r
+> +    return TRUE;\r
+> +}\r
+> +\r
+> +/*\r
+>   * Write fdin to a new temp file in maildir/tmp, return full path to\r
+>   * the file, or NULL on errors.\r
+>   */\r
+> @@ -297,6 +317,14 @@ maildir_write_tmp (const void *ctx, int fdin, const char *maildir)\r
+>      if (fdout < 0)\r
+>      return NULL;\r
+>  \r
+> +    /* maildir(5) suggests the message should start with a Return-Path\r
+> +     * and Delivered-To lines.  qmail-local(8) supplies these.\r
+> +     */\r
+> +    if (! write_header(fdout, getenv("RPLINE")))\r
+> +    goto FAIL;\r
+> +    if (! write_header(fdout, getenv("DTLINE")))\r
+> +    goto FAIL;\r
+> +\r
+>      if (! copy_fd (fdout, fdin))\r
+>      goto FAIL;\r
+>  \r
+> -- \r
+> 2.6.3\r
+>\r
+> _______________________________________________\r
+> notmuch mailing list\r
+> notmuch@notmuchmail.org\r
+> https://notmuchmail.org/mailman/listinfo/notmuch\r