Zum Inhalt springen

php mail() funktioniert nicht, MTA scheint aber zu laufen


Empfohlene Beiträge

Geschrieben

Hallo Community,

ich hoffe mal ich bin in diesem Forumsabschnitt richtig, der Linux-teil hat sich nach kurzem Ringen gegen den Netzwerk-teil durchgesetzt.

ich habe vorgestern auf mein Laptop OpenSUSE 11.1 aufgespielt und auch schon großteils eingerichtet. Für den eigenen Webserver zum entwickeln scheint alles vorhanden zu sein:

PHP ist mit allen benötigten Extensions installiert,

Der Zend Community Server ist eingerichtet und läuft (beinhaltet den Apache Server),

nach einigen Zicken läuft auch MySQL,

aber:

Die mail()-Funktion von PHP funktioniert nicht. Einen MTA (Mail Transfer Agent) habe ich schon mehrfach eingerichtet und wieder gelöscht, habe es erst mit postfix (manuell, später Yast) und dann mit sendmail (Yast) versucht.

Der erste Gedanke war ein eventuelles anpassen der sendmail_path-Variable in der php.ini , hat aber nicht geholfen:

sendmail_path = /usr/sbin/sendmail -t -i -f info@lee.com
Also noch einmal testen, ob der Server läuft: // Postfix starten - ist schon gestartet
localhost:/usr/local/zend/etc # postfix start

postfix/postfix-script: fatal: the Postfix mail system is already running

// Testweise Verbindung mit dem Mail-Server von GMX - keine Probleme, auch mit den SMTP, IMAP und POP Servern
localhost:/usr/local/zend/etc # telnet mail.gmx.de 25

Trying 213.165.64.20...

Connected to mail.gmx.de.

Escape character is '^]'.

220 mail.gmx.net GMX Mailservices ESMTP {mp021}

quit

221 2.0.0 GMX Mailservices {mp021}

Connection closed by foreign host.
// Testen ob postfix am SMTP-Port (25) hängt - bestätigt
localhost:/usr/local/zend/etc # lsof -i :25

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

master  16471 root   12u  IPv4  97623      0t0  TCP localhost:smtp (LISTEN)

Natürlich habe ich nach Umkonfigurierungen immer den MTA neugestartet bzw. vor dem testen mit php mail() den Webserver und was dazugehört.

Ich würde jetzt ja gerne meine konfigurierten Konfigdateien von Postfix anhängen, aber die letzten Versuche waren mit Yast, ich glaube nicht, dass die Konfigs da so viel weiterhelfen, wenn ich auch einfach die Einstellungen dort beschreiben kann.

Yast - MTA - Konfiguration

E-Mail-Serverkonfiguration: Standart (nicht erweitert)

Verbindungsart: Einwahl

Ausgehender Mailserver: mail.gmx.net

Authentifizierung:

* Benutzername: meinemailadresse@gmx.de

* Passwort: meinpasswort

Entfernte SMTP-Verbindungen anzeigen: (kein Häkchen)

FireWall-Port öffnen: (kein Häkchen)

Server: pop.gmx.de

Entfernter Benutzername: meinemailadresse@gmx.de

Passwort: meinpasswort

Lokaler Benutzer: (Mein Standartuser Acc)

Mail von root weiterleiten an: (leer)

Auslieferungsmodus: direkt

Virtuelle Domains/ Aliase habe ich weggelassen

Ich habe schon ne Weile recherchiert und weiß jetzt(vielleicht, keine Garantie auf Richtigkeit):

* postfix/sendmail verbinden senden/empfangen meistens über einen RelayHost, daher einen anderen Server, z.B. der GMX-Host. Dort benötigt man aber eine Authentifizierung. Ich habe angenommen, dass das wohl meine E-Mail Adresse und Passwort sind.

* Ich habe bei der manuellen Konfiguration von postfix auch die ganzen sasl_sonstwas_auth -Einstellungen mit den zugehörigen Datenbanken usw gemacht, hat aber auch nichts gebracht

Ja, wäre schön wenn mir jemand helfen kann,

justified

Geschrieben

Ohne die entsprechenden Logs ist nur schwer zu helfen.

Was willst Du überhaupt?

Du willst die Mail Funktion von PHP nutzen, diese arbeitet mit dem lokalen MTA zusammen, also kannst Du EMails an Deinen lokalen User zustellen. Wenn Du die Mails extern weiter leiten willst, dann benötigst Du den MTA mit direkter Auslieferung, was aber mit dynamischer IP bei den meisten Ziel-MTA abgelehnt wird oder Du konfigurierst Deinen MTA eben als SMTP Relay Host, so dass er die Mails an einen anderen MTA u.a. mit Authentifizierung weiter leitet, aber dafür benötigst Du kein SASL. Außerdem wird wohl der pop.gmx-Server für den Empfang via POP sein und nicht zum Versand

Geschrieben

Als erstes mal Danke für die Antwort, hat schonmal einiges klargemacht.

Du hast schon richtig geraten mit dem was ich will.

Das mit dem POP-Server ist wohl ein Versehen beim Schreiben dieses Eintrags gewesen.

Das mit der direkten Auslieferung und der Nicht-Akzeptanz bei dynamischen IPs habe ich schon gesehen, dafür wurde als Lösung eben die Konfiegurierung meines MTA per SASL...

Die Sache mit dem MTA als RelayHost wird mir zu blöde (ich weiß, jemand der sich auskennt stöhnt jetzt auf), deshalb nochmal 2 Fragen:

  • Meinst du mit lokalem MTA das bei mir installierte postfix/sendmail?
  • Wie genau schreibe ich über den lokalen MTA an einen lokalen User?

Wäre wunderbar, wenn ich das noch irgendwie hinbekomm :confused:

Geschrieben

Das mit der direkten Auslieferung und der Nicht-Akzeptanz bei dynamischen IPs habe ich schon gesehen, dafür wurde als Lösung eben die Konfiegurierung meines MTA per SASL...

SASL ist für die Authentifizierung da, das hat rein gar nichts mit dem Versand der Mails zu tun: Simple Authentication and Security Layer ? Wikipedia

Es geht um die Authentifizierung z.B. des Users !

Die Sache mit dem MTA als RelayHost wird mir zu blöde (ich weiß, jemand der sich auskennt stöhnt jetzt auf), [...]

Wenn Dir das zu blöd ist, dann bist Du selbst schuld. Denn wenn Du Mails aus Deinem MTA an beliebige Adressen ausliefern willst und keine statische IP mit entsprechenden DNS Einträgen besitzt, dann wirst Du wohl nicht anders vorgehen können

  • Meinst du mit lokalem MTA das bei mir installierte postfix/sendmail?
  • Wie genau schreibe ich über den lokalen MTA an einen lokalen User?

zu 1. Ja

zu 2. in dem Du dem User eine EMail sendest

Geschrieben

Ok, dann nochmal danke, habe wohl Fehlinformationen zusammengesammelt.

zu 2. in dem Du dem User eine EMail sendest

Meinst du damit etwas im Sinn von

mail('NameDesUsersInLinux@localhost.de', $message, $subject, $headers);

?

  • 1 Jahr später...
Geschrieben

Hallo,

bin gerade dabei auf meine Internetseite ein Mailformular zu stellen. Ist auch alles soweit fertig. Nur muss ich mich bei dem Mailanbieter immer erst einloggen, bevor ich ne mail von der Seite schicken kann.

Ich schicke mal den Quellcode, und hoffe, dass mir jemand helfen kann, und mir sagt, wo ich das Passwort hinschreiben muss!!

      		

   <form

	method="post">

	<p>

	<input type="text" name="Betreff" style="width:515px"> <br>

	<textarea name="EMAIL" cols="60" rows="8">Geben sie hier Ihren Text  für die Textnachricht ein.</textarea><br>

	<input type="submit" name="SENDEN" value="Nachricht Senden">

	</form>

	<?php

	if($_POST['SENDEN']){

	    echo "Ihre Nachricht wurde erfolgreich gesendet!";

	    mail("mail@info.de", $_POST['Betreff'],

		$_POST['mail@info.de']);


    }


    ?>			 

Danke schonmal für eure Antwort!

P.S.: Ich hoffe, ich bin hier richtig!

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...