Added -mts switch to post, send, and whom. Replaced test-sendmail-pipe
[mmh] / uip / post.c
index 08c62eb..3c47161 100644 (file)
@@ -131,6 +131,8 @@ static struct swit switches[] = {
     { "fileproc", -4 },
 #define MHLPROCSW               39
     { "mhlproc", -3 },
+#define MTSSW                   40
+    { "mts smtp|sendmail/smtp|sendmail/pipe", 2 },
     { NULL, 0 }
 };
 
@@ -518,6 +520,12 @@ main (int argc, char **argv)
                        adios (NULL, "missing argument to %s", argp[-2]);
                    mhlproc = cp;
                    continue;
+
+               case MTSSW:
+                   if (!(cp = *argp++) || *cp == '-')
+                       adios (NULL, "missing argument to %s", argp[-2]);
+                    save_mts_method (cp);
+                   continue;
            }
        }
        if (msg)
@@ -1472,11 +1480,10 @@ do_addresses (int bccque, int talk)
 static void
 post (char *file, int bccque, int talk, char *envelope)
 {
-    int fd, onex;
+    int fd;
     int        retval, i;
     pid_t child_id;
 
-    onex = !(msgflags & MINV) || bccque;
     if (verbose) {
        if (msgflags & MINV)
            printf (" -- Posting for %s Recipients --\n",
@@ -1503,7 +1510,6 @@ post (char *file, int bccque, int talk, char *envelope)
 
                argp = sargv;
                *argp++ = "sendmail";
-               *argp++ = "-m"; /* send to me too */
                *argp++ = "-t"; /* read msg for recipients */
                *argp++ = "-i"; /* don't stop on "." */
                if (whomsw)
@@ -1521,7 +1527,7 @@ post (char *file, int bccque, int talk, char *envelope)
        }
     } else {
         if (rp_isbad (retval = sm_init (clientsw, serversw, port, watch,
-                                        verbose, snoop, onex, queued, sasl,
+                                        verbose, snoop, queued, sasl,
                                         saslssf, saslmech, user, tls))  ||
             rp_isbad (retval = sm_winit (envelope)))
            die (NULL, "problem initializing server; %s", rp_string (retval));
@@ -1533,7 +1539,7 @@ post (char *file, int bccque, int talk, char *envelope)
         close (fd);
         fflush (stdout);
 
-        sm_end (onex ? OK : DONE);
+        sm_end (!(msgflags & MINV) || bccque ? OK : DONE);
         sigoff ();
 
         if (verbose) {
@@ -1561,7 +1567,7 @@ verify_all_addresses (int talk, char *envelope)
 
     if (!whomsw || checksw)
        if (rp_isbad (retval = sm_init (clientsw, serversw, port, watch,
-                                       verbose, snoop, 0, queued, sasl,
+                                       verbose, snoop, queued, sasl,
                                        saslssf, saslmech, user, tls))
                || rp_isbad (retval = sm_winit (envelope)))
            die (NULL, "problem initializing server; %s", rp_string (retval));