Linux, Xampp, Local - Mailversand funktioniert nicht

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

Linux, Xampp, Local - Mailversand funktioniert nicht

Postby kokosnuss » 27. December 2020 11:53

OS: Linux Mint "Cinnamon" 64-Bit
XAMPP: 7.4.12-0

Moin,
ich brauche mal Eure Hilfe bei der Konfiguration meiner lokalen XAMPP-Installation.
Ausgangssituation: Ein PHP-Kontaktformular , das bei meinem Provider problemlos funktioniert, soll auch lokal funktionieren.
Formular ausfüllen, überprüfen, absenden und Danke-Seite öffnen, funktioniert.
Was nicht funktioniert, ist der Mailversand. Ich bekomme einfach keine Mail.

Im "Sendmail.log" gibt es keine Fehlermeldungen.
[27-Dec-2020 10:43:35 Europe/Berlin] mail() on [/opt/lampp/htdocs/www.domain.de/kontakt.php:61]: To: homepage@domain.de -- Headers: From: homepage@domain.de Reply-To:xmas2020@domain.cc Content-type: text/plain; charset=UTF-8 MIME-Version: 1.0 Content-Transfer-Encoding: BASE64 -- Subject: Anfrage vom Kontaktformular


Nach langer Suche im Netz, habe ich in der "php.ini" folgendes eingetragen:

Code: Select all
[mail function]
SMTP = smtp.domain.de
smtp_port = 25
sendmail_from = heiko.rompel@domain.de
sendmail_path = /usr/sbin/sendmail -t -i
;mail.force_extra_parameters =
mail.add_x_header=On
mail.log = /opt/lampp/htdocs/sendmail.log


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



Der Mail-Provider lässt tatsächlich den Mailversand ohne vorherigem POP3/IMAP zu.

Im "php-error.log" gibt es auch keine Einträge.

a) In welche Logs kann ich noch suchen?
b) Wo ist mein Fehler?

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

Re: Linux, Xampp, Local - Mailversand funktioniert nicht

Postby Nobbie » 27. December 2020 13:01

Man kann nur entweder via SMTP oder via sendmail Emails versenden, wobei letzteres mit Sicherheit nicht auf privaten Rechnern funktioniert, die werden beim Empfänger geblockt (SPAM). Also kommentiere den sendmail_path aus, starte Apache neu und probiere es nochmal.

Steht auch so in der Doku: https://www.php.net/manual/de/mail.configuration.php

sendmail_path string
Pfad, in dem sich das sendmail-Programm befindet, z.B. /usr/sbin/sendmail oder /usr/lib/sendmail. configure versucht, die richtige Position automatisch zu finden. Falls die automatische Erkennung aber fehlschlägt und der Standardwert auf Ihrem Rechner falsch ist, dann können Sie hier den richtigen Pfad setzen.

Falls Sie auf Ihrem Rechner sendmail nicht benutzen, müssen Sie den Pfad angeben, in dem sich der sendmail-Wrapper/-Ersatz befindet, sofern vorhanden. Zum Beispiel können » Qmail-Benutzer diese Option auf /var/qmail/bin/sendmail oder /var/qmail/bin/qmail-inject setzen.

qmail-inject benötigt keine Optionen, um Mails korrekt zu verarbeiten.

Diese Option funktioniert auch unter Windows. Wenn Sie gesetzt ist, werden smtp, smtp_port und sendmail_from ignoriert und das angegebene Kommando wird ausgeführt.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Linux, Xampp, Local - Mailversand funktioniert nicht

Postby kokosnuss » 27. December 2020 13:46

Moin,

auch das auskommentieren und Neustarten, brachte keine Änderung.
Kennst Du für Linux einen Sendmail-Dummy, der eine Mail einfach in ein Textdatei schreibt?
Geht ja nur darum um zusehen, das alles richtig in die Mail gepackt wird.

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

Re: Linux, Xampp, Local - Mailversand funktioniert nicht

Postby Nobbie » 27. December 2020 19:05

Nein, ich kenne keinen, aber mit Google lassen sich bestimmt welche finden. Aber eigentlich sollte der Versand via SMTP auch so funktionieren, wenn wirklich keine Authorisierung verlangt wird. Vielleicht ein Firewall Problem?

P.S.: Habe einfach mal "linux fake sendmail" eingegeben in Google und direkt einen Supertreffer, ein simples Shellscript mit Anweisung, wie man es in LAMP (wie XAMPP) einbindet. Ein ganz effes Scriptchen.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Gesucht: Sendmail Fake für Linux

Postby kokosnuss » 01. January 2021 12:06

OS: Linux Mint Cinnamon 64-Bit
XAMPP: 7.4.12-0
Betrieb: lokal

Moin,

unter Windows hatte ich früher mal ein "Sendmail Fake" im Einsatz, der Mails z.B. von einem Kontaktformular, einfach in eine Textdatei schrieb.
Ich habe jetzt mal GitHub durchwühlt und das einizige was ich nach einem Hinweis fand, war ein Tool, das die Mails als .eml abspeicherte.
Bei dieser Lösung, muss man dann aber immer z.B. Thunderbird öffnen um die E-Mail angezeigt zu bekommen.
Ich fand dann noch weitere Tools, die behaupteten sie können das, aber entweder klappte die Installation nicht oder sie lieferten keinen richtigen Rückgabewert, so das das Formular einen Fehler beim Versand meldet.

Da ich ja bestimmt nicht der einzige bin, der mit einer lokalen Installation arbeitet, hat doch hier bestimmt schon jemand so ein Tool im Einsatz - oder?

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

Re: Linux, Xampp, Local - Mailversand funktioniert nicht

Postby Altrea » 01. January 2021 12:36

Hi,

Und du kannst das shell script nicht selbst editieren, um statt eml Dateien irgendwelche anderen Dateiendungen zu benutzen?

Oder die eml Datei einfach mit einem anderen Programm öffnen?
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Linux, Xampp, Local - Mailversand funktioniert nicht

Postby kokosnuss » 01. January 2021 12:49

Moin,

die ".eml"-Dateien sind "Base64" kodiert.
Da bringt es nicht viel denen eine andere Endung zu geben.
Hier mal das Script:
Code: Select all
#!/bin/sh
prefix="/opt/lampp/htdocs/sendmail/new"
numPath="/opt/lampp/htdocs/sendmail"

if [ ! -f $numPath/email_numbers ]; then
echo "0" > $numPath/email_numbers
fi
emailNumbers=`cat $numPath/emailNumbers`
emailNumbers=$(($emailNumbers + 1))
echo $emailNumbers > $numPath/emailNumbers
name="$prefix/letter_$emailNumbers.eml"
while IFS= read line
do
echo "$line" >> $name
done
chmod 666 $name
/bin/true


Wenn ich der Crack in Linux wäre, dann würde ich wahrscheinlich eine Lösung hin husten, bin ich aber nicht und deshalb frage ich.

Gruß Heiko

P.S. Warum wurde aus zwei Themen eines gemacht? Wenn ich die Lösung für Thema 1 habe und das Thema dann als gelöst setzen will, geht das jetzt nicht mehr. Ich dachte, eine Frage/Problem gleich ein Beitrag und nicht viele Frage in einen Beitrag.
kokosnuss
 
Posts: 65
Joined: 08. March 2003 10:04
Location: Bremerhaven
Operating System: Windows 7 Pro

Re: Linux, Xampp, Local - Mailversand funktioniert nicht

Postby Altrea » 01. January 2021 12:58

kokosnuss wrote:P.S. Warum wurde aus zwei Themen eines gemacht? Wenn ich die Lösung für Thema 1 habe und das Thema dann als gelöst setzen will, geht das jetzt nicht mehr. Ich dachte, eine Frage/Problem gleich ein Beitrag und nicht viele Frage in einen Beitrag.

Das ist korrekt. Da du in dem Thema hier aber bereits in deinem zweiten Beitrag nach einem Mail-Dummy gefragt hattest, der die E-Mail Daten einfach in eine Textdatei speichert, sehe ich hier keine neue Anfrage oder ein neues Problem.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Linux, Xampp, Local - Mailversand funktioniert nicht

Postby Altrea » 01. January 2021 13:06

Vielleicht hilft dieser Beitrag hier weiter. Hier werden verschiedene Lösungen beschrieben, die deiner Anforderung nahe kommen:
https://stackoverflow.com/questions/317 ... -localhost
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Linux, Xampp, Local - Mailversand funktioniert nicht

Postby kokosnuss » 01. January 2021 13:26

Moin,

Altrea wrote:Das ist korrekt. Da du in dem Thema hier aber bereits in deinem zweiten Beitrag nach einem Mail-Dummy gefragt hattest, der die E-Mail Daten einfach in eine Textdatei speichert, sehe ich hier keine neue Anfrage oder ein neues Problem.


Okay, das kann ich nachvollziehen.

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

Re: Gesucht: Sendmail Fake für Linux

Postby Nobbie » 01. January 2021 14:11

kokosnuss wrote:Bei dieser Lösung, muss man dann aber immer z.B. Thunderbird öffnen um die E-Mail angezeigt zu bekommen.


Warum auch nicht, ist doch prima - genau das gleiche müßte man bei einer "echten" Email ja auch machen. Ob man einen Texteditor startet oder einen Email Client, das ist doch eigentlich egal, aber der Email Client kann eben die ganze Email richtig darstellen, auch wenn vielleicht HTML Code und/oder ein Foto drin ist. Spätestens da ist ein Texteditor überfordert.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Linux, Xampp, Local - Mailversand funktioniert nicht

Postby kokosnuss » 01. January 2021 14:33

Moin,


Danke, für den Tipp, aber das brachte mich nicht weiter.
Die ">>"-Lösungen erzeugen eine Base64-EMail und die vorgeschlagenen Tools sind für Windows.
Okay, habe ich mir gedacht, dann nehme ich obiges Script und füge noch ein Teil zum decoden der Base64-EMail ein.
Also, im Verzeichnis in dem die Mails liegen mal ein
Code: Select all
base64 -d letter_4.eml
probiert, aber da gibt es die Fehlermeldung:
Nbase64: ungültige Eingabe

Wäre ja auch zu schön gewesen.

So zieht die E-Mail aus die das Script erzeugt:
To: xxxxx@yyyyy.de
Subject: Anfrage vom Kontaktformular
X-PHP-Originating-Script: 1000:kontakt.php
From: xxxxxx@yyyyyyyy.de
Reply-To:aaaaaaa@bbbbbb.cc
Content-type: text/plain; charset=UTF-8
MIME-Version: 1.0
Content-Transfer-Encoding: BASE64

TW9pbiwgDQoNCiBiY3h2YmN2YmN4dmIgY3h2YnhjdmJjdmIgbcO2Y2h0ZSBmb2xnZW5kZXMgd2lz
c2VuL2ZyYWdlbi9taXR0ZWlsZW46DQoNCnRlc3QgMzQyNDMNCg0KQW50d29ydCBiaXR0ZSBhbjog
eG1hczIwMjBAcm9tcGVsLmNjDQpBbnR3b3J0IGF1ZiBTaWNoZXJoZWl0c2ZyYWdlOiA=



Da ist natürlich die Frage ob ich mit
Code: Select all
Base64 -d
überhaupt weiterkomme, weil ja nicht alles kodiert ist.

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

Re: Gesucht: Sendmail Fake für Linux

Postby kokosnuss » 01. January 2021 14:39

Moin,
Nobbie wrote:
kokosnuss wrote:Bei dieser Lösung, muss man dann aber immer z.B. Thunderbird öffnen um die E-Mail angezeigt zu bekommen.

Warum auch nicht, ist doch prima - genau das gleiche müßte man bei einer "echten" Email ja auch machen. Ob man einen Texteditor startet oder einen Email Client, das ist doch eigentlich egal, aber der Email Client kann eben die ganze Email richtig darstellen, auch wenn vielleicht HTML Code und/oder ein Foto drin ist. Spätestens da ist ein Texteditor überfordert.


Klar, wenn es um HTML-Mails geht, hast Du recht.
Ich hätte das halt gerne nicht in verschiedenen Dateien, sondern in eine Datei, der ich jedes mal ein Reload spendiere und das Ergebnis
sehe.

Da ich die Lösung unter Windows damals nicht dokumentiert habe und auch das Fake-Script nicht wieder finde.
Bleiben mir zwei Optionen:
1. Ich lebe mit der eml-Lösung
2. Ich suche weiter

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

Re: Linux, Xampp, Local - Mailversand funktioniert nicht

Postby Altrea » 01. January 2021 15:19

Bei XAMPP von Windows ist das im Standardpaket mit drin, nennt sich mailtodisk und ist eine auf Basis von Python geschriebene eigenentwicklung.
Mailtodisk macht aber auch nichts anderes als von stdin abzugreifen und das in eine Datei zu schrieben. Daher erschließt sich mir nicht so richtig, warum es bei linux encodiert ausgegeben werden soll und bei Windows nicht. Außer sendmail lässt dies in der Konfiguration zu.

Es gibt zu dem mailtodisk auch noch ein PHP Ersatz: https://stackoverflow.com/questions/193 ... -for-linux
Oder einen alternativen Python Ersatz: https://github.com/CybeSystems/MailToDisk

Aber all das wird dir nicht weiterhelfen, wenn die Scripte alle dasselbe machen.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Gesucht: Sendmail Fake für Linux

Postby Nobbie » 01. January 2021 16:39

kokosnuss wrote:Ich hätte das halt gerne nicht in verschiedenen Dateien, sondern in eine Datei, der ich jedes mal ein Reload spendiere und das Ergebnis
sehe.


Kann man ja machen, einfach immer in die Datei "email.eml" schreiben.

Statt base64 gibt es unter Linux anscheinend auch ein Paket "mpack" (das muss installiert werden) und mit

Code: Select all
munpack email.eml


(als Beispiel) wird die Email in die Bestandteile zerlegt. Ggf. muss die Option -t angegeben werden (ich habe nicht verstanden warum, weil ich auch kein Beispiel hier habe), irgendetwas wird dann mit dem Textanteil anders gemacht, aber hat man ja mit einem kurzen Test heraus:

Code: Select all
munpack -t email.eml


Zuvor muss mpack installiert werden:

Code: Select all
sudo apt-get install mpack


Ich vermute mal, dass das munpack genau das tut, was Du suchst. Es kann aber auch darüber hinaus Emails mit Fotos usw. auseinandernehmen.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Next

Return to XAMPP für Linux

Who is online

Users browsing this forum: No registered users and 89 guests