** .pp
** Specifies the program and arguments used to deliver mail sent by Mutt.
** Mutt expects that the specified program interprets additional
- ** arguments as recipient addresses.
+ ** arguments as recipient addresses. Mutt appends all recipients after
+ ** adding a \fC--\fP delimiter (if not already present). Additional
+ ** flags, such as for $$use_8bitmime, $$use_envelope_from,
+ ** $$dsn_notify, or $$dsn_return will be added before the delimiter.
*/
{ "sendmail_wait", DT_NUM, R_NONE, UL &SendmailWait, 0 },
/*
char *ps = NULL, *path = NULL, *s = safe_strdup (Sendmail), *childout = NULL;
char **args = NULL;
size_t argslen = 0, argsmax = 0;
+ char **extra_args = NULL;
+ size_t extra_argslen = 0, extra_argsmax = 0;
int i;
#ifdef USE_NNTP
safe_realloc (&args, sizeof (char *) * (argsmax += 5));
if (i)
+ {
+ if (!mutt_strcmp (ps, "--"))
+ break;
args[argslen++] = ps;
+ }
else
{
path = safe_strdup (ps);
if (!option (OPTNEWSSEND))
{
#endif
+ /* If Sendmail contained a "--", we save the recipients to append to
+ * args after other possible options added below. */
+ if (ps)
+ {
+ ps = NULL;
+ while ((ps = strtok (ps, " ")))
+ {
+ if (extra_argslen == extra_argsmax)
+ safe_realloc (&extra_args, sizeof (char *) * (extra_argsmax += 5));
+
+ extra_args[extra_argslen++] = ps;
+ ps = NULL;
+ }
+ }
+
if (eightbit && option (OPTUSE8BITMIME))
args = add_option (args, &argslen, &argsmax, "-B8BITMIME");
args = add_option (args, &argslen, &argsmax, DsnReturn);
}
args = add_option (args, &argslen, &argsmax, "--");
+ for (i = 0; i < extra_argslen; i++)
+ args = add_option (args, &argslen, &argsmax, extra_args[i]);
args = add_args (args, &argslen, &argsmax, to);
args = add_args (args, &argslen, &argsmax, cc);
args = add_args (args, &argslen, &argsmax, bcc);
{
if (i != S_BKG)
{
- const char *e = mutt_strsysexit (i);
+ const char *e;
e = mutt_strsysexit (i);
mutt_error (_("Error sending message, child exited %d (%s)."), i, NONULL (e));
FREE (&path);
FREE (&s);
FREE (&args);
+ FREE (&extra_args);
if (i == (EX_OK & 0xff))
i = 0;