qmail-inject возвращает 111

Привет, у меня проблема с qmail. Я хочу отправить электронное письмо из моей программы. Я получил 111 код ошибки от qmail-inject. Но если я пытаюсь отправить ту же электронную почту из командной строки, это работает.

В моем коде:

if ((pid = fork()) < 0) {
logger.error("error creating on new process");
}

else if (pid == 0) {
logger.info("qmail-inject is calling now for Dlp Notify");
if (execl("/opt/program/bin/sendmail","sendmail", notifySender, tempMail,(char*)   0) == -1)  {
logger.error("notify operation failed: %s", strerror(errno));
exit(1);
}
}

sendmail — это такой скрипт:

/bin/cat $2 | /opt/smtp/bin/qmail-inject -f   $1

когда я запускаю этот скрипт в командной строке, который работает хорошо. Но из моей программы это не работает.

Любая помощь будет оценена.

0

Решение

Ваш код C для выполнения qmail-inject выглядит хорошо, по крайней мере, из того, что вы нам показываете.

man qmail-inject говорит нам, что код выхода 111 указывает на временную ошибку.

qmail-injectИсточники (v1.03, которые выглядят одинаково для netqmail 1.06) показывают следующее:

void temp() { _exit(111); }
void die_nomem() {
substdio_putsflush(subfderr,"qmail-inject: fatal: out of memory\n"); temp(); }
void die_invalid(sa) stralloc *sa; {
substdio_putsflush(subfderr,"qmail-inject: fatal: invalid header field: ");
substdio_putflush(subfderr,sa->s,sa->len); perm(); }
void die_qqt() {
substdio_putsflush(subfderr,"qmail-inject: fatal: unable to run qmail-queue\n"); temp(); }
void die_chdir() {
substdio_putsflush(subfderr,"qmail-inject: fatal: internal bug\n"); temp(); }
void die_read() {
if (errno == error_nomem) die_nomem();
substdio_putsflush(subfderr,"qmail-inject: fatal: read error\n"); temp(); }

Из последнего (вместе с еще несколькими поисками в qmail-inject.c) можно выделить следующие возможные причины qmail-inject выход с 111:

  • недостаточно памяти
  • неверные поля заголовка (или переданы в -f или читать из файлов конфигурации / контроля)
  • не может бежать qmail-queue (возможно, из-за его отсутствия или отсутствия пути поиска к нему)
  • будучи не в состоянии chdir в qmailпапка control / config файла
  • будучи не в состоянии читать файлы конфигурации / управления qmail

Проверка журналов на вашей стороне также может помочь.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]