HTML mail Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
ankommen
anzeigen
beispiel
bekommen
code
email
header
http
klicken
landen
message
mime
problem
richtigen header
tag
text
transfer
type
versenden
-
Hallo,
ich wollte per PHP eine HTML-Mail versenden, doch ist hier von lima gar nichts angekommen, und als ich es bei bplaced.net getestet hab hab ich nur eine Texttag/email">email bekommen. Also es waren alle HTML-Tag sichbar.
Hier mein Code:
$message = \" <html> <head> <title>Passwortsafe-Accountaktivierung</title> </head> <body> <p>Sehr geehrter \".$requestedusername .\",<br />sie bekommen diese Email weil sie sich einen Account bei Passwortsafe registriert haben.</p> <p>Bitte klicken Sie auf folgenden Link um den Account freizuschalten: <a href=\\\"\".$linktopage.\"index.php?action=activate&username=\".$requestedusername .\"&passphrase=\".$generatedpassphrase.\"\\\" target=\\\"_blank\\\">\".$linktopage.\"index.php?action=activate&username=\".$requestedusername .\"&passphrase=\".$generatedpassphrase.\"</a></p> <p>Zur Erinnerung ihre Zugangsdaten:</p> <table> <tr> <th>Username</th><td>\".$requestedusername .\"<td> </tr> <tr> <th>Passwort</th><td>\".$orig_userpassword.\"</td> </tr> </table> </body> </html> \"; $header = \'MIME-Version: 1.0\' . \"\\r\\n\"; //$header .= \'Content-type: text/html; charset=iso-8859-1\' . \"\\r\\n\"; $header .= \'Content-Type: text/html\\r\\nContent-Transfer-Encoding: 8bit\'.\"\\r\\n\"; $header .= \'To: \'.$requestedusername .\' <\'.$useremail.\'>\' . \"\\r\\n\"; $header .= \'From: Passwortsafe <noreply@passwortsafe.com>\' . \"\\r\\n\"; if(@mail($useremail, \"Passwortsafe-Accountaktivierung\", $message, $headers)) { echo \"Sie haben eine Email auf die angegebene Adresse bekommen.<br />Darin ist ein Link zur Aktivierung dieses Accounts enthalten.<br />Sie werden automatisch weitergeleitet!\"; echo \"<meta http-equiv=\\\"refresh\\\" content=\\\"5; url=index.php\\\">\"; } else { echo \"Es konnte keine Email zur Aktivierung des Accounts versendet werden.<br />Bitte klicken Sie <a href=\\\"\".$linktopage.\"index.php?action=activate&username=\".$requestedusername .\"&passphrase=\".$generatedpassphrase.\"\\\">hier</a> um dies sofort zu erledigen!\"; }
Die Variablen sind alle richtig initialisiert ...
Edit: Einrückungen verbessert^^
Beitrag geändert: 4.6.2008 8:12:40 von philippkern -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Prinzipiell kann ich zu mail() auf Lima-City sagen, dass es sich hierbei um eine Glückssache handelt. Bei mir kamen nie E-Mails vom Lima-Server an, auf anderen Webspaces funktionierten meine Skripte hingegen sehr gut und ohne Probleme.
Andere dagegen haben keine Probleme mit der Mail-Funktion hier.
Wieder andere bekommen mal eine Mail, mal keine, mal mit sehr langer Verzögerung.
Das ist allerdings mein Stand von vor einem Jahr und ich weiss nicht, ob sich da irgendwas geändert hat.
Bezüglich deines Problems auf dem anderen Webspace kann ich folgendes sagen:
Ich benutze nicht \"rn\" sondern \"\\r\\n\".
Welche Variante man da nutzen muss ist auf Linux-Servern auch wieder unterschiedlich zu Windows-Servern.
Da müsstest du dich aber mal selber informieren.
Ich hoffe dir hilft das etwas weiter ;) -
Hmm, da hast du recht.
Ich gehöre zu denen die fast nie eine Mail bekommen.
Also ich verwende \\r\\n, nur hat das Forum die \\ gekillt.
Ja also auf bplaced.net werden die Mails ja versendet, landen bei mir aber im Spamverdachtordner.
Seh ich ein.
Aber es wird nicht als HTML-Mail \"angesehen\".
Also ich seh die ganzen HTML-Tags, also den Quelltext sozusagen.
Was mach ich da falsch.
Nehme mal an das der Header nicht stimt -
Bevor man jetzt weiter spekuliert, kann es sein, dass dein Anbieter HTML-Mails nicht anzeigt? Macht GMX oder Arcor z.B.
Dann kann man auf nen Button klicken, um sich die Mail als HTML-Mail anzeigen zu lassen.
Zudem fehlt mir im Quellcode die Anweisung, wo die E-Mail verschickt wird.
P.S.: Ich z.B. habe den Betreff aus dem Header nicht und in eine eigene Variable geschrieben.
$Header.= \"From: email@email.de - Mailsystem <email@email.de>$EOL\"; $Header.= \"X-Mailer: PHP/\" . phpversion(). \"$EOL\"; $Header.= \"MIME-Version: 1.0\\r\\n\"; $Header.= \"Content-Type: multipart/related; \". \"boundary=\\\"\".$mime_boundary.\"\\\"; type=\\\"text/html\\\"$EOL\";
Wobei die Variable $EOL ebenfalls mit \"\\r\\n\" initialisiert ist.
Beitrag geändert: 4.6.2008 8:34:00 von karpfen -
Bevor man jetzt weiter spekuliert, kann es sein, dass dein Anbieter HTML-Mails nicht anzeigt? Macht GMX oder Arcor z.B.
Dann kann man auf nen Button klicken, um sich die Mail als HTML-Mail anzeigen zu lassen.
Zudem fehlt mir im Quellcode die Anweisung, wo die E-Mail verschickt wird.
Also ich verwende GMX.
Die Mailadresse auf die versendet steht, ist in $useremail drinnen.
Dieses wird durch ein Formular vom Benutzer eingegeben ...
Oder was meinst du?
Der mail-Befehl ist im if unten. -
Naja ich meine, wenn du das testest, dann schickst du es ja auf deine E-Mail. Deshalb mal schauen, ob du die E-Mail bei GMX als HTML anzeigen lassen kannst.
Ansonsten hab ich meinen Beitrag oben editiert. -
Naja ich meine, wenn du das testest, dann schickst du es ja auf deine E-Mail. Deshalb mal schauen, ob du die E-Mail bei GMX als HTML anzeigen lassen kannst.
Ansonsten hab ich meinen Beitrag oben editiert.
Ja also HTML-Mails kann ich bei GMX schon anzeigen.
zu dem Header von dir oben:
Was ist $mime_boundary?
Was soll da rein? -
$mime_boundary is für dich glaub ich nicht relevant. Ist irgendwas mit md5-Verschlüsselung oder so.
Ich hab leider lange nicht mehr mit mail() rumgespielt und kann dir da auch nur Hinweise geben. Direkt ein Fehler ist mir nicht aufgefallen.
Wie gesagt, ich habe die 5 Parameter der Mail-Funktion in je eigene Variablen geschrieben.
So konnte ich das für mich besser analysieren.
Vielleicht bringt dich der Link irgendwie weiter:
http://www.infos24.de/phpe/handbuch/23_php_mail.htm
Beitrag geändert: 4.6.2008 9:05:20 von karpfen -
Also ich habs jetzt mit deinem Header probiert.
Es wird auch versendet, aber in der Mail ist der Header teilweise sichtbar und HTML wird wieder nicht umgewandelt. :/
X-Mailer: PHP/5.2.6
MIME-Version: 1.0
Content-Type: multipart/related; boundary=\"boundary\"; type=\"text/html\"
Message-Id: <20080604071637.D7117458BC@server1.bplaced.net>
Date: Wed, 4 Jun 2008 09:16:37 +0200 (CEST)
-
Naja mein Header ist auch für E-Mails mit Dateianhang gemacht.
Das mit dem Multipart / Related weisst darauf hin.
Das sollte nur als Beispiel dienen. -
Hmm, dann könntest du mir ein Beispiel nur für HTML geben?
-
Ich hab dir irgendwo oben einen Link gepostet. Da sollte alles stehen.
-
Ich hab dir irgendwo oben einen Link gepostet. Da sollte alles stehen.
Ja so hab ich ja ganz am Anfang probiert.
Also den Link kannte ich schon.
Ab er ich bin grad draufgekommen das meine Variable einmal $header und einmal $headers heißt.
Werd das mal testen. -
An der Variable kann es eigentlich nicht liegen. Dann müsste die Mail trotzdem als normale Textmail ankommen.
Falls du Interesse hast: ich hab\' mal eine PHP-Klasse gebastelt, mit der man HTML-E-Mails über SMTP (z.B. mit einer Web.de E-Mail-Adresse) verschicken kann. Funktioniert hier auf Lima einwandfrei - ich benutze sie auch bei meiner Homepage. Schick\' mir einfach mal deine E-Mail-Adresse per PN und ich mail dir die Dateien mit einem Beispiel. So wie ich dich einschätze, wirst du ganz gut mit der Klasse zurecht kommen, da du ja PHP kannst. -
An der Variable kann es eigentlich nicht liegen. Dann müsste die Mail trotzdem als normale Textmail ankommen.
Falls du Interesse hast: ich hab\' mal eine PHP-Klasse gebastelt, mit der man HTML-E-Mails über SMTP (z.B. mit einer Web.de E-Mail-Adresse) verschicken kann. Funktioniert hier auf Lima einwandfrei - ich benutze sie auch bei meiner Homepage. Schick\' mir einfach mal deine E-Mail-Adresse per PN und ich mail dir die Dateien mit einem Beispiel. So wie ich dich einschätze, wirst du ganz gut mit der Klasse zurecht kommen, da du ja PHP kannst.
Also es kommt eh eine Mail an, zumindest wenn ich das Script bei bplaced drauf hab.
Nur wird es halt keine HTML-Mail ...
Ja, vielen Dank. -
philippkern schrieb:
Also es kommt eh eine Mail an, zumindest wenn ich das Script bei bplaced drauf hab.
Nur wird es halt keine HTML-Mail ...
Ja, vielen Dank.
Die Frage ist, ob die E-Mails auch ankommen, wenn du das Skript hier auf Lima-City laufen lässt. Wenn ja, liegt es wirklich am Header, wenn nicht, solltest du einfach mal die Klasse ausprobieren (die ich dir übrigens eben geschickt habe). -
wenn man die richtigen header verwendet, werden die e-mails auf bplaced auch html-e-mail (hab ich mal probiert), und wenn man ne gescheite e-mail-adresse als absender angibt landen sie auch nicht im spam-ordner.
einziges problem: mit bplaced kann man nur 100 mail()-s am tag versenden (um spam zu vermeiden), ich finde aber es ist relativ wenig -
philippkern schrieb:
Also es kommt eh eine Mail an, zumindest wenn ich das Script bei bplaced drauf hab.
Nur wird es halt keine HTML-Mail ...
Ja, vielen Dank.
Die Frage ist, ob die E-Mails auch ankommen, wenn du das Skript hier auf Lima-City laufen lässt. Wenn ja, liegt es wirklich am Header, wenn nicht, solltest du einfach mal die Klasse ausprobieren (die ich dir übrigens eben geschickt habe).
Danke schön.
Aber heißt das jetzt ich muss einen Account bei web.de aufmachen?
tmxxx schrieb:
wenn man die richtigen header verwendet, werden die e-mails auf bplaced auch html-e-mail (hab ich mal probiert), und wenn man ne gescheite e-mail-adresse als absender angibt landen sie auch nicht im spam-ordner.
einziges problem: mit bplaced kann man nur 100 mail()-s am tag versenden (um spam zu vermeiden), ich finde aber es ist relativ wenig
Ja dann poste mal die \"richtigen header\"! ;) -
Hallo,
Ja dann poste mal die \"richtigen header\"! ;)
das mit $header und $headers ist auf jeden Fall schon mal ein Grund warum es nicht klappt, denn so ist dein selbst definierter Header ja völlig sinnlos.
Ansonsten mag Lima das /r am Zeilenende nicht, also nur /n verwenden.
Nachzulesen unter:
http://de.php.net/manual/de/function.mail.php
Hier ein Header, der bei mir funktioniert:
$header = \"From: Passwortsafe <noreply@passwortsafe.com>\\n\";
$header .= \"Content-Transfer-Encoding: 8bit\\n\";
$header .= \"MIME-Version: 1.0\\n\";
$header .= \"Content-Type: text/html; charset=iso-8859-1\\n\";
Gruß
Manni
-
Hallo,
Ja dann poste mal die \"richtigen header\"! ;)
das mit $header und $headers ist auf jeden Fall schon mal ein Grund warum es nicht klappt, denn so ist dein selbst definierter Header ja völlig sinnlos.
Ansonsten mag Lima das /r am Zeilenende nicht, also nur /n verwenden.
Nachzulesen unter:
http://de.php.net/manual/de/function.mail.php
Hier ein Header, der bei mir funktioniert:
$header = \"From: Passwortsafe <noreply@passwortsafe.com>\\n\";
$header .= \"Content-Transfer-Encoding: 8bit\\n\";
$header .= \"MIME-Version: 1.0\\n\";
$header .= \"Content-Type: text/html; charset=iso-8859-1\\n\";
Gruß
Manni
Vielen Dank, so funktionierts.
Also zumindest bei lima -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage