E Mail verschicken mit PHP?

Hey Leute!

ich habe mich gefragt, ob man mit einem PHP Script eine Email verschicken kann ? Ich habe dieses Quelltext aber es funkteniert nicht! Kann mir jmd. helfen und wenn es nicht geht warum nicht? :smile:

<?php $empfaenger = "[email protected]"; //Mailadresse
$absender   = "[[email protected]](mailto:[email protected])"; $betreff    = "PHP-Mail-Test"; $mailtext   = "Inhalt einer Mail zum Test von PHP"; $antwortan  = "[[email protected]](mailto:[email protected])";   mail( $empfaenger,       $betreff,       $mailtext,       "From: $absender\nReply-To: $antwortan");   echo "Mail wurde gesendet!"; ?\> wär cool :wink:

normalerweise geht das , aber dazu muss auch ein email
sende programm installiert sein , z.b. bei linux sendmail
und dann muss der server (gleiche ) auch noch emails senden dürfen, also als reverse MX
eingetragen sein , sonst ist es spamm .

ergo willst du von einem reinen HTTP server emails verschicken nimmt man ein anderes
programm welches erstmal via Authentifizierung sich anmeldet und dann senden darf .
So wie es halt jedes email programm auch tut das nicht auf einem emailserver ausgeführt wird.

was ? :smiley: Kannst du das einfacher erklären ? :smiley:

Frag deinen Dienstleister

was ? :smiley: Kannst du das einfacher erklären ? :smiley:

… ob sein Webserver so eingestellt ist, dass PHP E-Mails verschicken kann/darf.

Gruß

Stefan

okay weist du ob und wo man das einstellen kann/muss ?

Hallo ,

was ? :smiley: Kannst du das einfacher erklären ? :smiley:

Du hast einen Webserver ohne Emailserver.
Dann geht mail() nicht , da es nur Emails verschicken kann
wenn der Emailserver auf dem selben rechner läuft wie der Webserver.
Bei meinen Servern ist das so . Damit das von anderen Emailservern auch als
korrekte Domain email erkannt wird, muss dieses auch als EmailService für diese Domain eingetragen werden … ja das kann mann alles schön nachlesen wenn man sich mal so ein Server geholt hat.

Da Du aber nicht so einen Server hast , funktioniert
es mit mail() nicht in PHP .

Dir ist ja auch aufgefallen das da gar kein username und passwort eingetragen wird …
Das doch anders als bei deinem Email programm.

So wie funktionieren Emails (ist ja nicht so das es das seit gestern gibt)

Damit die Server die Emails schnell transportieren können wird auf sicherheit verzichtet.
Alles was von einem MX kommt wird einfach angenommen .
Das heist der eine Server sendet und der andere nimmt einfach an.

Wenns also keine sendekontrolle gibt könnte jeder mit irgendeinem absender etc einfach mail verschicken ohne ende .

Wie unterbindet man nun das nicht jeder der eine IP hat und ein emailprogramm hat einfach wild Emails verschicken kann ???

Ganz einfach man verlangt erstmal eine Anmeldung für das abrufen der Emails, erst danach darf ich senden , denn dann weiss der server ja wer ich bin (bzw das ich es darf weil angemeldet)

Das nennt sich http://de.wikipedia.org/wiki/SMTP-After-POP

Und das kann mail() nicht, mail kann nur auf einem Authorisierten MX senden (schliesslich ist das Programm ja auf dem selben Server ).

Alle anderen nicht auf dem server befindlichen email sender müssen eben SMTP-after-POP nutzen

Hier mal eine beschreibung leider in english wie man das auch mit mail() hinbekommen könnte

http://email.about.com/od/emailprogrammingtips/qt/PH…

ich würd aber ein anderes script empfehlen , das eben SMTP after POP macht.

kannst du mir da ein Programm empfehlen, dass das macht ?

z.b.
http://mailinfo.kundenserver.de/auth_phpmailer.php3

suche bei google ist
mail::smtp php

ein problem bleibt, wenn dein mailserver z.b. gmx oder web de ist und mann nur ein free account hat, dann darf man nur eine bestimmte zahl an emails senden und auch nur alle z.b. 15minuten , das wird dann leider nciht klappen wenn zwei user sich inerhalb der 15 minuten was senden wollen .

also geht mein Quelletext gar nicht ??

Testest du das auf einem lokalen Server?
Bei Xampp zB. ist das Mail-Modul standardmäßig nicht aktiv.

Bekommst du eine Fehlermeldung?

Ansonsten kannst du dir mit dem Befehl phpinfo() deine Konfiguration anzeigen lassen und nach sendmail_path suchen. Der sollte nicht leer sein.

Hallo,

das sollte schon funktionieren, wenn der smtp-server eine Authentifizierung erlaubt.

mail( $empfaenger,
$betreff,
$mailtext,
„From: $absender\nReply-To: $antwortan“);

ich bin mit nicht sicher, ob der header im Aufruf korrekt ist, es sollte so sein:

$header = „From: „.$absender.“\r\n“.„Reply-To: „.$antwortan.“\r\n“;

Ich bin sehr sicher, dass ein Aufruf von mail(…) einen From-Header enthalten muss.
Vielleicht liegt hier der Fehler.

Es werden ja bei obigem Aufruf die Variablen ($absender, $antwortan) als Zeichenfolgenliteral angegeben.

also mein Vorschlag:

mail( $empfaenger,
$betreff,
$mailtext,
$header);

Header-Angaben müssen immer mit \r\n angegeben werden.
Hier könnte ein weiteres Problem liegen.

Hallo Antitofu,

genau so funktioniert es auch. Ich habe es gerade einmal getestet. Hier hast du den Programmquelltext:


<?php $empfaenger = „[email protected]“; //Mailadresse
$absender = „[email protected]“;
$betreff = „PHP-Mail-Test“;
$mailtext = „Inhalt einer Mail zum Test von PHP“;
$antwortan = „[email protected]“;

$header = „From: „.$absender.“\r\n“.„Reply-To: „.$antwortan.“\r\n“;

mail( $empfaenger,
$betreff,
$mailtext,
$header);

echo „Mail wurde gesendet!“;
?>

ja benutzte Xampp und wie mach ich das dann genau ?

machst du das mit xampp?

frag mich immernoch wie dein
haus server emails als MX ohne reverse eintrag schafft.
oder machst du das über dyndns MX einträge ?

siehe
http://www.etes.de/service/e-mail/reverse-lookup/

Ich habe es mit meinem provider getestet. Also driekt auf dem Server meines Providers weil ich nur eine Korrektur in dem PHP Skript vorgenommen habe.

Wenn das php-Skript auf deinem Server (apache) aufgerufen wird;
Das scheint so zu sein, ich habe den ganzen Thread nicht gut gelesen, verzeih.
Dann verhält es sich meiner Meinung nach wie folgt:
Wenn Du xampp installiert hast, dann musst du nur PHP konfigurieren.

Dafür gibt es die Datei _ php.ini _. Dieses verweist auf das Programm zum senden.
z.b. _ sendmail_path = /usr/sbin/sendmail _

Ob es neue Herausforderungen gibt mit anderen Programmen als sendmail (postfix) ist schwer zu beurteilen. Vermutlich ja.
Bei gleichzeitiger Installation von xampp und den entsrechenden Paketen aus einer linux Distribution (PHP, MySql, Apache) kann es ebenfalls Seiteneffekte geben.

Hier findest du glaube ich sehr gute Hinweise wie so ein PhpMailer mit XAMPP aussehen könnte: