X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=sendlib.c;h=1e8ffe7f6f55a57af92bae0592bf473d9bd9a335;hp=80790f45e045cd33576bf685db5d956e0ec40efe;hb=c565d2f14f1655a6483171e1636e5803533b6ebe;hpb=ba5e3af4ea19e1d20c80941c077039871ec84258 diff --git a/sendlib.c b/sendlib.c index 80790f4..1e8ffe7 100644 --- a/sendlib.c +++ b/sendlib.c @@ -14,6 +14,9 @@ #endif #include "mutt.h" +#include "ascii.h" +#include "handler.h" +#include "recvattach.h" #include "mutt_curses.h" #include "rfc2047.h" #include "rfc2231.h" @@ -802,7 +805,7 @@ CONTENT *mutt_get_content_info (const char *fname, BODY * b) CONTENT *info; CONTENT_STATE state; FILE *fp = NULL; - char *fromcode; + char *fromcode = NULL; char *tocode; char buffer[100]; char chsbuf[STRING]; @@ -1468,6 +1471,7 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, char *p; LIST *tmp = env->userhdrs; int has_agent = 0; /* user defined user-agent header field exists */ + list2_t* hdrs = list_from_str (EditorHeaders, " "); #ifdef USE_NNTP if (!option (OPTNEWSSEND)) @@ -1475,6 +1479,8 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, if (mode == 0 && !privacy) fputs (mutt_make_date (buffer, sizeof (buffer)), fp); +#define EDIT_HEADER(x) (mode != 1 || option(OPTXMAILTO) || (mode == 1 && list_lookup(hdrs,(list_lookup_t*) ascii_strcasecmp,x) >= 0)) + /* OPTUSEFROM is not consulted here so that we can still write a From: * field if the user sets it with the `my_hdr' command */ @@ -1492,7 +1498,8 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, #ifdef USE_NNTP if (!option (OPTNEWSSEND)) #endif - fputs ("To: \n", fp); + if (EDIT_HEADER("To:")) + fputs ("To: \n", fp); if (env->cc) { fputs ("Cc: ", fp); @@ -1502,7 +1509,8 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, #ifdef USE_NNTP if (!option (OPTNEWSSEND)) #endif - fputs ("Cc: \n", fp); + if (EDIT_HEADER("Cc:")) + fputs ("Cc: \n", fp); if (env->bcc) { if (mode != 0 || option (OPTWRITEBCC)) { @@ -1514,28 +1522,30 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, #ifdef USE_NNTP if (!option (OPTNEWSSEND)) #endif - fputs ("Bcc: \n", fp); + if (EDIT_HEADER("Bcc:")) + fputs ("Bcc: \n", fp); #ifdef USE_NNTP if (env->newsgroups) fprintf (fp, "Newsgroups: %s\n", env->newsgroups); - else if (mode == 1 && option (OPTNEWSSEND)) + else if (mode == 1 && option (OPTNEWSSEND) && EDIT_HEADER("Newsgroups:")) fputs ("Newsgroups: \n", fp); if (env->followup_to) fprintf (fp, "Followup-To: %s\n", env->followup_to); - else if (mode == 1 && option (OPTNEWSSEND)) + else if (mode == 1 && option (OPTNEWSSEND) && EDIT_HEADER("Followup-To:")) fputs ("Followup-To: \n", fp); if (env->x_comment_to) fprintf (fp, "X-Comment-To: %s\n", env->x_comment_to); - else if (mode == 1 && option (OPTNEWSSEND) && option (OPTXCOMMENTTO)) + else if (mode == 1 && option (OPTNEWSSEND) && option (OPTXCOMMENTTO) && + EDIT_HEADER("X-Comment-To:")) fputs ("X-Comment-To: \n", fp); #endif if (env->subject) fprintf (fp, "Subject: %s\n", env->subject); - else if (mode == 1) + else if (mode == 1 && EDIT_HEADER("Subject:")) fputs ("Subject: \n", fp); /* save message id if the user has set it */ @@ -1546,7 +1556,7 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, fputs ("Reply-To: ", fp); mutt_write_address_list (env->reply_to, fp, 10, 0); } - else if (mode > 0) + else if (mode > 0 && EDIT_HEADER("Reply-To:")) fputs ("Reply-To: \n", fp); if (env->mail_followup_to) @@ -1576,6 +1586,8 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, fputc ('\n', fp); } +#undef EDIT_HEADER + /* Add any user defined headers */ for (; tmp; tmp = tmp->next) { if ((p = strchr (tmp->data, ':'))) { @@ -1612,9 +1624,11 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, } } /* Add a vanity header */ - fprintf (fp, "User-Agent: mutt-ng/%s (%s)\n", MUTT_VERSION, os); + fprintf (fp, "User-Agent: %s (%s)\n", mutt_make_version (0), os); } + list_del (&hdrs, (list_del_t*) _mem_free); + return (ferror (fp) == 0 ? 0 : -1); } @@ -2075,8 +2089,11 @@ int mutt_invoke_mta (ADDRESS * from, /* the sender */ int eightbit) { /* message contains 8bit chars */ #ifdef USE_LIBESMTP - if (SmtpHost) - return mutt_invoke_libesmtp (from, to, cc, bcc, msg, eightbit); +#ifdef USE_NNTP + if (!option (OPTNEWSSEND)) +#endif + if (SmtpHost) + return mutt_libesmtp_invoke (from, to, cc, bcc, msg, eightbit); #endif return mutt_invoke_sendmail (from, to, cc, bcc, msg, eightbit);