error closing /usr/lib/sendmail: Keine Kind-Prozesse (exit -1)

Begonnen von roedert, 17 Oktober 2017, 09:26:08

Vorheriges Thema - Nächstes Thema

roedert

Ich versende aufs FHEM über eine kleine Routine in der 99_myUtils eMails im lokalen Netz.
Die Mails kommen auch an, allerdings kommt danach immer der Fehler:
2017.10.17 03:35:14 1: ERROR evaluating {MailtoXYZ('FHEM wurde neu gestartet!')}: error closing /usr/lib/sendmail: Keine Kind-Prozesse (exit -1)

Dies ist die Routine in der 99:myUtils
sub
MailtoXYZ($)
{
  my ($text) = @_;
  my $msg = MIME::Lite->new(
    From    => 'FHEM',
    To      => 'xyz@xyz.local',
    Subject => $text,
    Type    => 'TEXT',
    Data => "Automatisch generierte Nachricht von http://fhem:8083/fhem"
  );
  $msg->send;
}


Die gleichen Zeilen in einem Test-Perlprogramm aufgerufen laufen fehlerfrei.
Was kann da der Grund sein?

System ist ein Debian GNU/Linux 8

dev0

Starte das Test-Perlprogramm mal mit Deinem user unter dem fhem läuft, ich vermute dass dann eine ähnliche Meldung kommt -> Berechtigungsproblem.

Aber warum überhaupt mit MIME::Lite?
Zum einen sagt cpan:
ZitatMIME::Lite is not recommended by its current maintainer. There are a number of alternatives, like Email::MIME or MIME::Entity and Email::Sender, which you should probably use instead. MIME::Lite continues to accrue weird bug reports, and it is not receiving a large amount of refactoring due to the availability of better alternatives. Please consider using something else.

Eine sehr einfache Alternative zum Mailversand ist es den localen MTA zu konfigurieren, wenn überhaupt nötig, und zu nutzen:

system("/bin/echo \"$text\" | /usr/bin/mail -s \"$subject\" -a\"From:FHEM \<fhem\@yourdomain.de\>\" \"$rcpt\"");

roedert

Das Perl-Testprogramm habe ich schon unter dem FHEM-User laufen lassen ... problemlos.
Mit Email::Sender bekomme ich einen ähnlichen Fehler ... aber auch da kommt die Mail an:

2017.10.17 03:32:44 1: ERROR evaluating {MailtoXYZ('FHEM wurde neu gestartet!')}: error when closing pipe to sendmail: Keine Kind-Prozesse

dev0

Beende die Sub MailtoXYZ($) mal mit "return undef;", sonst den lokalen MTA nutzen, wenn Dich die Meldung nervt.

roedert

return undef; ändert auch nix. Der perl-Mailversand läuft ja auch über den lokalen MTA ... aber ich stelle mail auf den direkten OS-Aufruf von mail um.....