Sendmail wird von Script nicht gefunden

Irgendwelche Probleme mit XAMPP für Linux? Dann ist hier genau der richtige Ort um nachzufragen.

Sendmail wird von Script nicht gefunden

Postby kokosnuss » 24. November 2020 22:44

Moin,

nach langer Zeit, brauche ich mal wieder einen Schubs in die Richtige Richtung.

OS: Linux Mint Cinnamon 64-Bit
XAMPP-Version : 7.4.12
PHP-Version: 7.4.12

Aufruf mittels PHP-Script auf localhost
Code: Select all
   if ( sendmail( $empfaenger, $betreff, $message, $header ) ) {

Fehlermeldung:
Fatal error: Uncaught Error: Call to undefined function sendmail() in /opt/lampp/htdocs/www.heiko-rompel.de/kontakt.php:52 Stack trace: #0 {main} thrown in /opt/lampp/htdocs/www.heiko-rompel.de/kontakt.php on line 52


Sendmail ist installiert:
Code: Select all
heiko@heiko-pc:~$ which sendmail
/usr/sbin/sendmail


Die php.ini unter "/opt/lampp/etc" habe ich als Admin geöffnet und folgendes eingetragen:
Code: Select all
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP=localhost
; http://php.net/smtp-port
smtp_port=25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com
sendmail_from = postmaster@localhost

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =
sendmail_path = /usr/sbin/sendmail
;sendmail_path = /usr/lib/sm.bin

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header=On

; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log =


Wo ist mein Fehler ?
kokosnuss
 
Posts: 65
Joined: 08. March 2003 10:04
Location: Bremerhaven
Operating System: Windows 7 Pro

Re: Sendmail wird von Script nicht gefunden

Postby Nobbie » 24. November 2020 22:48

Es gibt in PHP keine Funktion mit dem Namen sendmail(). Genau das ist auch die Fehlermeldung.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Sendmail wird von Script nicht gefunden

Postby kokosnuss » 28. November 2020 17:23

Moin,

Nobbie wrote:Es gibt in PHP keine Funktion mit dem Namen sendmail(). Genau das ist auch die Fehlermeldung.


Aua, da in der phph.ini sendmail konfiguriert wird, habe ich das gar nicht realisiert.

Ich mache ich den Aufruf im Script mittels
Code: Select all
 mb_send_mail
, aber auch der läuft nicht durch.
Ich weiß jetzt leider nicht, ob ich einen Fehler im Code habe oder ob ich XAMPP falsch eingerichtet habe.

Code: Select all
   if ( mb_send_mail( $empfaenger, $betreff, $message, $header ) ) {
      header('Location: /danke.html');
      exit;
   } else {
      http_response_code( 500 );
      echo '<h1>Oh. Ein Fehler!<br/> Die Anfrage konnt nicht verschickt werden.</h1>';
      exit;
   }
}

Ich bekomme immer die Fehlermeldung.
Das Script habe ich von einer anderen Seite und dort läuft es.

Gruß Heiko
kokosnuss
 
Posts: 65
Joined: 08. March 2003 10:04
Location: Bremerhaven
Operating System: Windows 7 Pro

Re: Sendmail wird von Script nicht gefunden

Postby Nobbie » 28. November 2020 17:57

Da ist jetzt die Frage, wie ist die Konfiguation in php.ini, in Deiner(?) php.ini ist sowohl SMTP (das ist ein Server) als auch das Kommandozeilentool sendmail_path (das ist ein Programm) konfiguriert. PHP kann nur eines von beiden, ich habe keine Ahnung, welche Konfiguration zieht, wenn man beide vornimmt.

Ein weiteres Problem ist, dass die PHP mail() Funktion alt und dumm ist, sie beherrscht keinen AUTHORIZE via SMTP. Vor vielen Jahren war das nichts ungewöhnliches, fast alle größeren SMTP Server waren "offen" und konnten ohne Passwort und UserID erreicht werden. Aber das ist schon lange nicht mehr der Fall, weil das SPAM Aufkommen viel zu hoch war. Das ist aber seitdem das Problem der mail() Funktion und der mageren Konfigurationsoptionen in php.ini, man kann überhaupt keine Userid und auch kein Passwort für einen SMTP Server angeben.

Ich kann auch nicht erkennen und beurteilen, welchen Versandweg Du physikalisch brauchst, welcher SMTP Server benutzt werden soll und ob er ein UserID / Passwort verlangt. Die Fehlermeldung in PHP ist mau, die sagt nur, dass irgendetwas von diesen vielen Dingen schief gegangen ist.

Ich selbst benutze und empfehle eigentlich nur noch die PHPMailer Klasse von sourceforge, anstatt mail() (resp. die mb_send_mail_() Funkiion) zu nutzen. Diese Klasse beherrscht alle Varianten des Email Versands und unterstützt auch HTML Emails u.v.m.. Man findet sie hier: https://sourceforge.net/projects/phpmailer/
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Sendmail wird von Script nicht gefunden

Postby kokosnuss » 29. November 2020 14:35

Moin,

Nobbie wrote:Da ist jetzt die Frage, wie ist die Konfiguation in php.ini, in Deiner(?)

Habe ich doch schon in meinem ersten Post mit angegeben.

Nobbie wrote:php.ini ist sowohl SMTP (das ist ein Server) als auch das Kommandozeilentool sendmail_path (das ist ein Programm) konfiguriert. PHP kann nur eines von beiden, ich habe keine Ahnung, welche Konfiguration zieht, wenn man beide vornimmt.


Ich auch nicht.
Nobbie wrote:
Ich selbst benutze und empfehle eigentlich nur noch die PHPMailer Klasse von sourceforge, anstatt mail() (resp. die mb_send_mail_() Funkiion) zu nutzen.

Wie ich einen Beitrag vor Deinem schrieb, nutze ich jetzt auch "mb_send_mail".

Mir würde lokal auch ein Mail2File-Dummy reichen, der aber auch die richtigen Rückmeldungen liefert.
nter Windows gab es ein solches Tool. Wenn Du sowas unter Linux kennst und mir auch noch schreiben kannst, wie ich es einbinde, wäre es super.

Gruß Heiko
kokosnuss
 
Posts: 65
Joined: 08. March 2003 10:04
Location: Bremerhaven
Operating System: Windows 7 Pro

Re: Sendmail wird von Script nicht gefunden

Postby Nobbie » 29. November 2020 19:13

Unter Linux könnte man natürlich das "echte" sendmail benutzen. Empfehle ich aber nicht, weil Emails von privaten Servern sowieso geblockt werden.

Ich benutze nur die PHPMailer Class und da meistens GMX oder Google als SMTP Server. Auch unter Linux.

Ansonsten habe ich hier einen schönen Artikel gefunden, der die verschiedenen Möglichkeiten unter Linux beleuchtet und dokumentiert. Da ist eigentlich alles dabei, was man machen kann:
https://www.ryadel.com/en/send-email-me ... -sendmail/

Da finde ich den Hinweis auf ssmtp am interessantesten, das wäre eine einfache Option, wie Du via sendmail_path" in php. ini auf das Programm (/usr/bin/ssmtp) verweisen kannst und dann dort (/etc/ssmtp/ssmpt.conf) in der Konfiguration festlegst, über welchen SMTP Server Deine Emails dann versendet werden. Sehr ähnlich bei beim fake sendmail.exe unter Windows.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Sendmail wird von Script nicht gefunden

Postby kokosnuss » 29. November 2020 21:56

Moin,
wenn ich das Script auf dem Server meines Providers laufen lasse, dann funktioniert der Mailversand.
Lokal bekomme ich immer den Error 500.
Also, mein XAMPP (linux) scheint noch nicht richtig konfiguriert zu sein.
In allen Error-Logs finde ich aber nicht die entscheidende Information, was noch falsch ist ....
Muss das die Tage noch mal schauen.

Gruß Heiko
kokosnuss
 
Posts: 65
Joined: 08. March 2003 10:04
Location: Bremerhaven
Operating System: Windows 7 Pro

Re: Sendmail wird von Script nicht gefunden

Postby kokosnuss » 03. January 2021 11:41

Moin,

auch dieses Thema kann als "Erledigt" betrachtet werden.
Wenn ich wie vorgeschlagen
Code: Select all
mb_send_mail
einsetze, bekomme ich nachher BASE64 encodete Mails, was mir Lokal dann einiges Kopfzerbrechen bereitet hat. Einfach nur
Code: Select all
mail
einsetzen.
SMTP : alles Deaktiviert und bei [code]sendmail_path =/code] den Pfad zu einem "Mail2Disk"-Script und alles ist fein.

Danke, für Eure Unterstützung und Geduld.

Schönen Gruß von der Nodseeküste
Heiko
kokosnuss
 
Posts: 65
Joined: 08. March 2003 10:04
Location: Bremerhaven
Operating System: Windows 7 Pro


Return to XAMPP für Linux

Who is online

Users browsing this forum: No registered users and 9 guests