sendmail: stop doing -t unconditionally; makemime: generate 76 char base64 lines
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 18 Nov 2011 21:25:35 +0000 (22:25 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 18 Nov 2011 21:25:35 +0000 (22:25 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
mailutils/mail.c
mailutils/sendmail.c

index f5260d9..199f644 100644 (file)
@@ -119,7 +119,7 @@ static char* FAST_FUNC parse_url(char *url, char **user, char **pass)
 void FAST_FUNC encode_base64(char *fname, const char *text, const char *eol)
 {
        enum {
-               SRC_BUF_SIZE = 45,  /* This *MUST* be a multiple of 3 */
+               SRC_BUF_SIZE = 57,  /* This *MUST* be a multiple of 3 */
                DST_BUF_SIZE = 4 * ((SRC_BUF_SIZE + 2) / 3),
        };
 #define src_buf text
index dbd4910..f96ca32 100644 (file)
@@ -281,17 +281,19 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv)
 
                // analyze headers
                // To: or Cc: headers add recipients
-               if (0 == strncasecmp("To:", s, 3) || 0 == strncasecmp("Bcc:" + 1, s, 3)) {
-                       rcptto(sane_address(s+3));
-                       goto addheader;
+               if (opts & OPT_t) {
+                       if (0 == strncasecmp("To:", s, 3) || 0 == strncasecmp("Bcc:" + 1, s, 3)) {
+                               rcptto(sane_address(s+3));
+                               goto addheader;
+                       }
+                       // Bcc: header adds blind copy (hidden) recipient
+                       if (0 == strncasecmp("Bcc:", s, 4)) {
+                               rcptto(sane_address(s+4));
+                               free(s);
+                               continue; // N.B. Bcc: vanishes from headers!
+                       }
                }
-               // Bcc: header adds blind copy (hidden) recipient
-               if (0 == strncasecmp("Bcc:", s, 4)) {
-                       rcptto(sane_address(s+4));
-                       free(s);
-                       // N.B. Bcc: vanishes from headers!
-               } else
-               if (strchr(s, ':') || (list && skip_whitespace(s) != s)) {
+               if (strchr(s, ':') || (list && isspace(s))) {
                        // other headers go verbatim
                        // N.B. RFC2822 2.2.3 "Long Header Fields" allows for headers to occupy several lines.
                        // Continuation is denoted by prefixing additional lines with whitespace(s).