15 logmsg(
WHO,111,FATAL,
"out of memory\n");
20 logmsg(
WHO,100,USAGE,
"sendmail [ -t ] [ -fsender ] [ -Fname ] [ -bp ] [ -ba ] [ -bs ] [ arg ... ]\n");
27 if (!env_get(
"PROTO")) {
28 if (!env_puts(
"RELAYCLIENT="))
nomem();
29 if (!env_puts(
"DATABYTES=0"))
nomem();
30 if (!env_puts(
"PROTO=TCP"))
nomem();
31 if (!env_puts(
"TCP6LOCALIP=::1"))
nomem();
32 if (!env_puts(
"TCPLOCALIP=127.0.0.1"))
nomem();
33 if (!env_puts(
"TCPLOCALHOST=localhost"))
nomem();
34 if (!env_puts(
"TCPREMOTEIP=127.0.0.1"))
nomem();
35 if (!env_puts(
"TCP6REMOTEIP=::1"))
nomem();
36 if (!env_puts(
"TCPREMOTEHOST=localhost"))
nomem();
37 if (!env_puts(
"TCPREMOTEINFO=sendmail-bs"))
nomem();
40 logmsg(
WHO,111,FATAL,
"unable to run qmail-smtpd\n");
47 logmsg(
WHO,111,FATAL,
"unable to run qmail-qread\n");
57 env_unset(
"QMAILNAME");
58 env_unset(
"MAILNAME");
60 env_unset(
"QMAILHOST");
61 env_unset(
"MAILHOST");
67 env_put(
"QMAILUSER",s);
70 env_put(
"QMAILHOST",s + a + 1);
72 x = (
char *) alloc((a + 1) *
sizeof(char));
74 for (i = 0; i < a; i++)
77 env_put(
"QMAILUSER",x);
84int main(
int argc,
char *
const *argv)
92 buffer_putsflush(buffer_2,
"sendmail: fatal: unable to switch to qmail home directory\n");
98 while ((opt = getoptb(argc,(
char **)argv,
"vimte:f:p:o:B:F:EJxb:")) != opteof) {
102 case 't':
flagh = 1;
break;
103 case 'f':
sender = optarg;
break;
104 case 'F':
if (!env_put(
"MAILNAME",optarg))
nomem();
break;
120 while (argv[optind][optpos]) ++optpos;
138 if (str_equal(optprogname,
"mailq"))
141 if (str_equal(optprogname,
"newaliases")) {
142 logmsg(
WHO,100,FATAL,
"please use fastforward/newaliases instead\n");
145 qiargv = (
char **) alloc((argc + 10) *
sizeof(
char *));
146 if (!qiargv)
nomem();
149 *arg++ =
"bin/qmail-inject";
150 *arg++ = (
flagh ?
"-H" :
"-a");
157 for (i = 0; i < argc; ++i) *arg++ = argv[i];
160 execv(*qiargv,qiargv);
161 logmsg(
WHO,111,FATAL,
"unable to run qmail-inject\n");
void do_sender(const char *s)