Mail senden mit PHP

Ich hab ein Problem. Und zwar möchte ich das Benutzer die sich auf meiner Seite registrieren eine Mail bekommen mit einem Bestätigungsmail. Leider weiß ich nicht wie man hier Mails versendet.
Müsste dazu sagen das ich von einem anderen Freehoster her gewechselt bin weil der mir zu oft down war… Jedenfalls ging dort der Mailversand mit einem gesonderten Codeschnipsel…

Meine Frage. Kann mir da jemand nen Codeschnipsel zu geben? Wäre super nett. Hab zwar das Forum hier durchstöbert, war dabei aber nicht ganz erfolgreich. Hatte zwar in anderen Posts gesehen das es wohl mit der einfachen mail() Funktion klappen sollte. Nur leider hatte ich da nicht den erhofften Erfolg.

Danke schon mal im Voraus für jede Hilfe.

Funktion mail() bei php.net: de3.php.net/manual/de/function.mail.php

Den fünften Parameter “additional_parameters” kannst du hier auf bplaced nicht benutzen.

Sonst schaut eine einfache Mail in etwa so aus:

mail("hans@foo.bar", "Mein Betreff", "Hier meine tolle Nachricht", "From: noreply@example.org\r\n");

Oder um das ganze etwas übersichtlicher zu halten:

$an = "hans@foo.bar";
$betreff = "Mein Betreff";
$nachricht = "Meine Nachricht.";
$von = "noreply@example.org";

mail($an, $betreff, $nachricht, "From: ".$von."\r\n");

Edit: wenn ich mich nicht irre ist hier das versenden von E-Mails auf 100 Stück pro Tag beschränkt.

mfg Balmung

Erstmal danke Balmung für deine schnelle Antwort, werde das gleich mal testen und mich gegebenenfalls nochmal melden.

Mit deinem Limit irrst du nicht. Hatte so etwas bereits gelesen. Und auch das man das mit Begründung aufstocken kann.

Gruß
Wizard_85

EDIT: Es funzt, danke. Ich frage mich zwar warum es bei mir lokal nicht geht, aber das ist ne andere Geschichte… Hab deinen Header (Absender) noch etwas erweitert das er mir die Mails auch im HTML-Format sendet. Funktioniert prima. Danke,

Damit die Mail() Funktion funktioniert, brauch man auf dem Server ebenfalls einen Mail-Server.
Wenn du Windows nutzt ist ein Mail-Server nicht dabei, unter Linux ist es je nach Installation unterschiedlich, ich zum Bsp. hab keinen.
Darüber hinaus müsste dann natürlich noch der entprechende Port (SMTP: TCP-Port 25) im Router (falls vorhanden) auf “forwarding” gestellt werden, und in Firewalls freigegeben werden, damit Lokal alles funktioniert.

Ich hab mir den fertigen von xampp installiert… Werde mir aber mal versuchen den über die Repos zusammen zu stellen. Zwar etwas mehr arbeit, sollte dann aber auch alles dabei sein. Wobei mit dem script was ic von meinem vorhergehenden Freehoster hatte gings. Vielleicht umgeht der das auch nur geschickt… Schulternzuck

Eine Frage hätte ich da aber doch noch. Man könnte doch eigentlich bei der send() Funktion jede beliebige Mailadresse als Absender eintragen. Auch die die nicht existieren. Oder irre ich mich da?

probieren geht über studieren.
Habs nie für nötig befunden, wäre aber durchaus denkbar.

Zu dem Script: kann sein, dass das script sich bei deinem Mailanbieter mit Benutzernamen und Passwort angemeldet hat.
Das ist wieder eine ganz andere Geschichte, denn dann ist die Funktionsweise so, wie bei einem Standard Mail Client z.B. Thunderbird oder Microsofts Outlook.
Das geht hier bei bplaced aber leider nicht, da die benötigten Funktionen (fsockopen etc.) nicht vorhanden sind.

fsockopen… Ja, das wurde verwendet. Hab grad nachgeschaut. Und ne Authentifizierung hat auch stattgefunden. Schade das das hier nicht möglich ist. Den dadurch wird ja eigentlich das mit den Spam-Mails etwas umgangen da eine existierende Mailadresse verwendet werden musste und man auch gezeigt hat das man ein Recht hat diese zu nutzen.

Mal noch ne Frage… g Welche Header-Informationen kann man eigentlich mitgeben bzw sind hier erlaubt? Hatte grad so überlegt das man ne Absende-Mailadresse (0815@foo.bar).

sollte beides Möglich sein. Ich denke jedenfalls nicht, dass der bplaced server extra ne Verbindung zum entsprechenden Mail-Server aufbaut, um zu überprüfen, ob die Mail-Adresse wirklich existiert.
Wenn die Adresse nicht existiert, dann kann man dir eben keine Antwort schicken.

mfg Balmung

Deswegen ja ne Absenderadresse und ne Antwortadresse… Hatte mal gelesen das es da so etwas gibt… Aber etwas lesen ist immer die eine Sache. Die andere ist in wie weit es unterstützt wird.

Aber danke das du immer gleich antwortest. Muss auch mal gelobt werden, da das Lob in Foren manchmal sehr dürftig ausfällt.

Gruß
Wizard_85

Antworten kann ich nur, wenn ich anwesend bin :>
jetzt eben war ich es für 20 min nämlich nicht ^^

Danke trotzdem

Und die Frage nach zusätzlichen Header Informationen bzw ob man hier getrennte Absender und Antwortadressen verwenden darf wurde noch nicht beantwortet… :smiley: Okay, werde ich mal das 2. einfach testen…

Ach, und danke. In dem anderen Post das mit dem bbcode und dem Link wollte ich auch just in dem Moment sagen.

[quote=„Wizard_85“]Und die Frage nach zusätzlichen Header Informationen bzw ob man hier getrennte Absender und Antwortadressen verwenden darf wurde noch nicht beantwortet… :smiley: Okay, werde ich mal das 2. einfach testen…[/quote]Naja es schadet wohl niemanden, wenn du da unterschiedliche Adressen nutzt, von daher denke ich, dass es erlaubt ist. Kann mir jedenfalls nur schwer das Gegenteil vorstellen. ^^"

[quote=„Wizard_85“]Ach, und danke. In dem anderen Post das mit dem bbcode und dem Link wollte ich auch just in dem Moment sagen.[/quote]lol :p

Okay, hab mal etwas ausprobiert.

$absender = "From: NOREPLY <noreply@foo.bar>\r\n"; $absender.= "Reply-To: ICH <ich@foo.bar>\r\n"; $absender.= "Return-Path: ICH <ich@foo.bar>\r\n"; $absender.= "Content-type: text/html; charset=iso-8859-1" . "\r\n"; $absender.= "Content-Transfer-Encoding: quoted-printable\r\n"; $absender.= "X-Mailer: PHP/" . phpversion();

Alles läuft gut, bis auf die kleine Tatsache das der Return-Path anscheinend wirklich rausgefiltert wird. schulterzuck Aber das hatte ich bereits gelesen das der nicht geht. Musste es aber doch mal probieren. :wink:

hallo

habe das folgende kontaktformular und möchte nun wissen wo ich das php code einbauen muss ???


[b]hier das php code:
$an = “hans@foo.bar”;
$betreff = “Mein Betreff”;
$nachricht = “Meine Nachricht.”;
$von = "noreply@example.org";

mail($an, $betreff, $nachricht, “From: “.$von.”\r\n”);[/b]


damit der absender mitgeschickt wird

danke

[b]

  • Name: <INPUT TYPE="text"NAME= “Name”>

Vorname:

* Telefon:

E-Mail:

Straße - Nr:

PLZ:

Ort:

Text:

[/b]

[code]if (!isset($_POST[‘send’]) {

// DEIN FORMULAR + FOLGENDE ZEILE MIT EINFÜGEN und ändere

//ENDE FORMULAR
} else {
$an = $_POST[‘Vorname’]." “.$_POST[‘Name’].” <".$_POST’E-Mail’].">";
$betreff = “BETREFF”;
$nachricht = “NACHRICHT”;
$header = "FROM: WAS AUCH IMMER noreply@example.org\r\n;
//Falls du html-Mails schicken möchtest brauchst du folgende Zeile noch
$header.= “Content-type: text/html; charset=iso-8859-1” . “\r\n”;
mail($an, $betreff, $nachricht, $header);
}[/code]

hallo

meinst du so ???

[b]if (!isset($_POST[‘send’]) {

  • Name: <INPUT TYPE="text"NAME= “Name”>

Vorname:

* Telefon:

E-Mail:

Straße - Nr:

PLZ:

Ort:

Text:

} else {
$an = $_POST[‘Vorname’]." “.$_POST[‘Name’].” <".$_POST’E-Mail’].">";
$betreff = “BETREFF”;
$nachricht = “NACHRICHT”;
$header = "FROM: WAS AUCH IMMER noreply@example.org\r\n;
//Falls du html-Mails schicken möchtest brauchst du folgende Zeile noch
$header.= “Content-type: text/html; charset=iso-8859-1” . “\r\n”;
mail($an, $betreff, $nachricht, $header);
}[/b]

hallo

habe es mal zum testen hochgeladen und der code den du mir geschickt hast wird als text angezeigt

hier die seite wenn du schauen möchtest

www.comcel.de

dann unter kontakte

danke

Mir fällt grad auf das es gar nicht hätte gehen können. Ich hab vergessen dem Server zu sagen was HTML und was PHP ist… Daher müsste es richtig lauten:

[code]<?
if (!isset($_POST[‘send’]) {
?>

  • Name: <INPUT TYPE="text"NAME= “Name”>

Vorname:

* Telefon:

E-Mail:

Straße - Nr:

PLZ:

Ort:

Text:

<? } else { $an = $_POST['Vorname']." ".$_POST['Name']." <".$_POST'E-Mail'].">"; $betreff = "BETREFF"; $nachricht = "NACHRICHT"; $header = "FROM: WAS AUCH IMMER \r\n; //Falls du Mails mit HMTL-Nachricht schicken möchtest brauchst du folgende Zeile noch $header.= "Content-type: text/html; charset=iso-8859-1" . "\r\n"; mail($an, $betreff, $nachricht, $header); }?>[/code]

Und du solltest dabei beachten das das nun keine html-Datei mehr ist sondern eine php-Datei. Also die Endung müsste geändert werden…