Du solltest am besten diesen Artikel durchlesen.![]()
Hallo
habe hier ein Problem und stehe wohl gerade auf dem Schlauch.
Ich habe einen recht umfangreichen Formmailer für einen Freund geschrieben, der auch tadellos und perfekt funktioniert.
Im Header für den mail() Aufruf lasse ich den Absendernamen und die eMail Adresse für den eMail-Client anzeigen, was auch top funktioniert. Das ganze sieht dann so aus, wenn man die Mail öffnet... Von: Fritzchen Müller [irgendwo@sagichnicht.de] ... ein Klick auf den Namen und man kann an die Adresse antworten, die in Klammern dahinter steht oder man kann den Absender zum Adressbuch hinzufügen.
Der Vorname, Nachname und die eMail Adresse werden aus $_POST übernommen und zum Absender-Kopf zusammen gesetzt.
so weit so gut.... Jetzt das Problem
Wenn der Nachname aber mit einem "Sonderzeichen" anfängt, dann passt das alles im Absender nicht mehr zusammen. Beispiel:
Vorname: Seçil Nachname: İçelliler (der erste Buchstabe ist kein upper i sondern ein türkisches Sonderzeichen. Quasi ein upper i mit Apostroph.)
Dann wird aus dem zusammen gesetzten Header in der Mail plötzlich: Seçil@xyz.de (xyz.de steht für mein Servername!) ohne den Nachnamen und ohne Antwortmail, dafür falsch eingesetzter Servername...
zum Vergleich nochmal komplett...
korrekt= Von: Fritzchen Müller [irgendwo@sagichnicht.de]
falsch= Von: Seçil@xyz.de
Leider kapier ich gerade nicht, wie ich das korrigieren kann. Das ist durchaus auch kein fiktives Problem, weil mein Freund sehr viel mit dem Ausland am Mail schreiben ist und öfter mal solche Namen über das Formular kommen.
Bin für Hilfestellung, Ratschläge und Lösungen dankbar
Hier noch der Header der Kummer bereitet bei den speziellen Namen
{EDIT}PHP-Code:$header = "From:" .$_POST["vorname"]. " " .$_POST["name"]. "<$email>\n";
$header .= "Content-Type: text/html\n";
$header .= "Content-Transfer-Encoding: 8bit\n";
In allen anderen Textfeldern, NamensFeldern usw spielen Sonderzeichen keine Rolle. Hab die ganze Palette an abgedrehten Zeichen versucht und es kommt zu keinen Fehlern, nur spezielle Zeichen im Header der Mail machen Probleme.
{Edit 2}
ok, hab eben nochmal versucht und getestet... Es scheint nicht viele Zeichen zu geben, bei denen das Problem auftritt. Dieses aus dem Nachnamen oben ist eins davon. Ich habe ne ganze Menge Zeichen versucht und auch solche wie z.B. ÿ Ã Å Ð Ñ usw. machen hier keine Probleme.
Geändert von phpBuddy (11.09.2004 um 00:28 Uhr)
Du solltest am besten diesen Artikel durchlesen.![]()
Moin,
@ Strogij
danke für deine Antwort und den Link.
Also wenn ich mir das so durchlese, dann ist es einfacher Leute mit solchen Namen umtaufen zu laßen, als eMails korrekt zu versenden, die solche Namen beinhalten.
Ich dachte mir schon, daß es mit MIME zu tun hat aber dachte nicht, daß der Typ da unterscheidet. Was ich nicht verstehe ist.....:
Im Artikel wird auch gesagt, daß man generell in der Mail auf Benutzung von solchen Sonderzeichen absehen soll, weil das zu Probs führen kann (und bei mir auch macht). Unklar ist mir jedoch, wieso es im Body der Mail keine Rolle spielt aber in der Absender-Zeile Probleme macht. Laut Artikel, sofern ich den richtig verstanden habe in meinem übermüdeten Zustand, führt das generell zu Problemen und nicht nur dann, wenn ein Sonderzeichen im Header steht.
Leider kann ich den MIME-Typ nicht umstellen, weil eine Kopie des Formulars an den Absender geht und ich nicht weiß, was die für Kisten und Mail-Clients haben.
Also wenn keiner eine einfache Lösung für mein Problem hat, dann muß es eben so bleiben wie es ist. Der korrekte Name mit zugehöriger eMail steht ja auch noch im übermittelten Formular selbst. Das mit dem Absender (name + email) dient mehr oder weniger nur der Bequemlichkeit bzw zu sortier-Zwecken. (...und solche ungelösten probleme wurmen einfach und nagen am ego - sch*** perfektionismus)
Wenn mir langweilig ist dann teste ich mal alle Zeichen durch die Probleme machen können und filter die Übeltäter heraus mit einer einfachen Ersetzen-Funktion. Sollte ja auch kein wirkliches Problem sein (bis auf das herausfinden welche Zeichen es sind).
Naja das ist halt Standard und Standard heißt Englisch oder ASCII.![]()
Moin..Zitat von Strogij
ja, aber wenn man diesen Standard im Land des Standards (USA) anwenden würde, dann würde man standardmäßig ganz schnell auf 38 Trillionen verklagt - wegen Diskriminierung![]()
![]()
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)