• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]Ich versuche, mittels php, ne mail zu senden.

Ich versuche, mittels php, ne mail zu senden.

Obwohl Programm korrekt terminiert, kommt leider nix an.




PHP-Code:
<?php

echo "versuche, mail zu senden<BR>";

$result= mail('manfred@zahlhaas-datentechnik.de', 'Betreff', 'datentechnik', null,'-fmanfred@zahlhaas-datentechnik.de');

echo "result=$result<BR>";

echo "Jetzt sollte eine mail gesendet worden sein<BR>";

?>
 
kann ja auch nicht gehen, die letzte email-adresse ist falsch, da werden andere parameter erwartet.

ich vermute mal das sollte die absenderadresse sein.

guck mal unter: http://de.php.net/manual/de/function.mail.php. da findest du auch ein beispiel.
 
hmpf, toter Link.

Hab schon zig Beispiele ausprobiert.

Sollten bei den parametern nicht nicht mail-Parameter und Passwort dabeisein oder steht das irgendwo in Config-Dateien?
 
Dann sieh dir den Link doch mal weiter an und such mal nach Mail und tiefer gehenden Links. :roll:

http://de.php.net/manual/de/
 
Und damit sind bei:




echo "vor require<BR>";

require_once "Mail.php";

echo "probieren wirs<BR>";

emailHtml("manfred@zahlhaas-datentechnik.de", "subject", "die message", "manfred@zahlhaas-datentechnik.de")

echo "Version mail_test1<BR>";


function emailHtml($from, $subject, $message, $to) {
$host = "localhost";
$username = "manfred@zahlhaas-datentechnik.de";
$password = "looploop";

$headers = array ('MIME-Version' => "1.0", 'Content-type' => "text/html; charset=iso-8859-1;", 'From' => $from, 'To' => $to, 'Subject' => $subject);

$smtp = Mail::factory('smtp', array ('host' => $host, 'auth' => false));

$mail = $smtp->send($to, $headers, $message);
if (PEAR::isError($mail))
return 0;
else
return 1;
}


mag aber auch nicht, werd mal recherchieren, wie man PEAR installiert
 
Mailen in PHP geht eigentlich ganz simpel, du brauchst kein Pear:

Code:
<?php

mail('empfanger@domain.de', 'Betreff', 'Text, bla bla lba', 'From: ich <ich@bla.de>');

?>

PHP schiebt dass dann an den Mailserver - unter Linux üblicherweise an localhost. Da muss natürlich etwas wie Postfix oder Sendmail laufen und richtig konfiguriert sein. Ist das nicht der Fall geht natürlich auch das Mailen mit PHP nicht.

Zugangsdaten zu irgendwelchen SMTP Konten brauchst Du erstmal nicht. Zwar kann man das auch einstellen, der normale Weg geht aber über einen entsprechenden Daemon der eben für lokale Programme das Relaying macht.
 
Gemäß deinem Muster hab ich das geschrieben, ist eigentlich identisch:

echo "Schaun wir mal, ob des geht, an datentechnik<BR>";

$ergebnis= mail('manfred@zahlhaas-datentechnik.de', 'Betreff', 'Text, bla bla lba', 'From: manfred@zahlhaas-datentechnik.de>');



echo "ergebnis: $ergebnis<BR>";

echo "Wars das???<BR>";

Bildschirmausgabe:

Schaun wir mal, ob des geht, an datentechnik
ergebnis: 1
Wars das???

Leider kommt nix an.
postfix ist installiert und startet laut Runlevel-Editor. Ob spaßeshalber mal zusätzlich sendmail installieren sollte?
 
Ja, das sollte es eigentlich gewesen sein.

Verschick mal eine Mail von der Konsole aus mit "mail" und schau ob die ankommt.

Falls nein, schau mal in die Logs von Postfix ob was verschickt wurde.

Wenn ja, prüf mal die php.ini bzgl. der SMTP Einstellungen.
 
Jetzt bin ich offenbar mittten in die mail-Konfiguration geraten.

in der php.ini (apache-Verzeichnis) find ich nichts zum Thema "postfix" oder "smtp" nur:

Hab mich dumm gestellt (geht das?), die letzte Zeile stammt von mir.


;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = On

; Whether to allow include/require to open URLs (like http:// or ftp://) as files.

allow_url_include = Off

; Define the anonymous ftp password (your email address)
;from="john@doe.com"
from="manfred@zahlhaas-datentechnik.de"
 
Die letzte Zeile ist zwar nicht falsch, spielt für den Mailversand aber überhaupt keine Rolle. Die E-Mailadresse dort wird, wie der Komentar darüber sagt, nur für anonymen FTP Login benötigt.

Hast Du mal versucht eine Mail von der Konsole zu verschicken?
 
mampfi schrieb:
in der php.ini (apache-Verzeichnis) find ich nichts zum Thema "postfix" oder "smtp" nur:

In der php.ini gibt es eine Sektion mail mit folgenden Default Einstellungen:
Code:
[mail function]
; For Win32 only.
SMTP = localhost

; For Unix only.  You may supply arguments as well (default: 'sendmail -t -i').
sendmail_path = /usr/sbin/sendmail -t -i

; 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 =

mampfi schrieb:
$ergebnis= mail('manfred@zahlhaas-datentechnik.de', 'Betreff', 'Text, bla bla lba', 'From: manfred@zahlhaas-datentechnik.de>');

...

postfix ist installiert und startet laut Runlevel-Editor. Ob spaßeshalber mal zusätzlich sendmail installieren sollte?
manfred@zahlhaas-datentechnik.de> ist wg. des asymetrischen > keine gültige Absendeadresse.

Welchen MTA du verwendest ist egal, du kannst natürlich nur einen nehmen. Postfix ist sendmail aus verschiedenen Gründen vorzuziehen, wenn du auf sendmail umsteigst wirds wohl nur wirrer.
Das in der php.ini genannte sendmail binary wird von den meisten (allen?) MTAs zwecks Kompatibilität mitinstalliert.

Damit mail() von PHP funktioniert muss der lokale MTA korrekt konfiguriert sein, also erstmal den Vorschlag von nbkr beherzigen und testen ob das läuft. PHP selbst versendet keine Mail , die Funktion mail() übernimmt lediglich die Kommunikation zum MTA.
 
Also, ich hab jetzt mal folgendes gemacht: Das programm auf meinen Server kopiert und ausprobiert.

Ergebnis: Es funzt.


Nachdem das "Programmierproblem" gelöst ist, setze ich den thread mal auf gelöst.

Die Konfigurationsgeschichte werd ich mit eurem Einverständnis mal später angehen (das interessiert mich auch. ;-) )
 
Oben