Mail() header

Hallo Ihr Wisser,

ich verschicke aus einem Anmeldeformular eine Bestätigungsmail. Das Formular ist UTF-8 kodiert, die Mail wird aber standardmäßig in ISO-8859-1 angezeigt und deshalb Umlaute und € nicht korrekt angezeigt. Also dachte ich mir, ich definiere einen Header und verschicke die Mail so:

$mailheader=‚From: [email protected]‘.’\r\n’;
$mailheader .=‚MIME-Version: 1.0‘ . ‚\r\n‘ . ‚Content-type: text/plain; charset=UTF-8‘ . ‚\r\n‘;
mail($_POST[‚MemberMail‘],‚Betreff‘,‚Mailtext‘,$mailheader);

Allerdings wird in der Mail im Header alles nach dem „From“ zusammengeschrieben. Ich kriege also eine Mail von

[email protected]\r\nMIME-Version: 1.0\r\nContent-type:text/plain; charset=UTF-8\r\n

Und die Kodierung ist logischer Weise immer noch falsch. Ich habe auch \n statt \r\n versucht, ohne Änderung. Was kann ich machen?

Cheers, Felix

Hallo Felix,

\r\n wird nur in „“ Anfuehrungszeichen als Steuerzeichen erkannt, nicht in den von dir verwendeten ‚‘

Siehe auch http://www.php.net/manual/de/language.types.string.php

Gruss
Stefan

Hallo Stefan,

\r\n wird nur in „“ Anfuehrungszeichen als Steuerzeichen
erkannt, nicht in den von dir verwendeten ‚‘

Siehe auch
http://www.php.net/manual/de/language.types.string.php

So einfach! Jetzt geht es.

Vielen Dank und *

Felix

Hi,

es ist grob fahrlässig und kann teuer werden, $_POST[‚MemberMail‘] ungeprüft in den Mail-Header zu setzen.

Gruß
Ingo

Hallo,

es ist grob fahrlässig und kann teuer werden,
$_POST[‚MemberMail‘] ungeprüft in den Mail-Header zu setzen.

Danke für den input. Allerdings kommt diese Variable aus einem Formular, das ‚MemberMail‘ wiederum aus einer Datenbank übernimmt. Der Benutzer kann da keine Eingabe machen, sondern nur lesen. Ist das dann für dich in Ordnung?

Cheers, Felix

Hi,

Allerdings kommt diese Variable aus einem
Formular, das ‚MemberMail‘ wiederum aus einer Datenbank
übernimmt. Der Benutzer kann da keine Eingabe machen, sondern
nur lesen. Ist das dann für dich in Ordnung?

wieso für mich? Ich kenne einen Fall, wo der Provider die Seite zum Glück gesperrt hatte, bevor Schaden entstanden und Schadensersatzansprüche gestellt werden konnten.

Wenn die Adresse vor der Speicherung in der DB insb. auf Zeilenvorschübe geprüft wurde, hätte ich keine Bedenken. Allerdings hätte ich dann die Datenbank-Variable eingesetzt, um diese Frage gar nicht erst aufkommen zu lassen.

Gruß
Ingo

Hallo,

Allerdings kommt diese Variable aus einem
Formular, das ‚MemberMail‘ wiederum aus einer Datenbank
übernimmt. Der Benutzer kann da keine Eingabe machen, sondern
nur lesen. Ist das dann für dich in Ordnung?

wieso für mich?

OK :wink:

Ich kenne einen Fall, wo der Provider die
Seite zum Glück gesperrt hatte, bevor Schaden entstanden und
Schadensersatzansprüche gestellt werden konnten.

Wenn die Adresse vor der Speicherung in der DB insb. auf
Zeilenvorschübe geprüft wurde, hätte ich keine Bedenken.
Allerdings hätte ich dann die Datenbank-Variable eingesetzt,
um diese Frage gar nicht erst aufkommen zu lassen.

Die DB kommt von mir. Ist also geprüft. Und es ist einfacher, auf der Eingabeseite alles, also auch die readonly-Variablen, mit post weiterzugeben. Aber ich denke noch mal drüber nach.

Alles Gute, Felix

Die DB kommt von mir. Ist also geprüft. Und es ist einfacher,
auf der Eingabeseite alles, also auch die readonly-Variablen,
mit post weiterzugeben. Aber ich denke noch mal drüber nach.

dein formular ist nicht im geringsten verbindlich, es haelt mich nicht davon ab zu posten, was ich will.
ich koennte eben zwischendurch z.b. mit den firefox plugins tamper data den request, oder webdeveloper toolbar den formularinhalt bearbeiten (eben auch disabled felder editierbar machen).
in einem script benutzt man z.b. curl um was auch immer zu posten. man probiert dann einmal alle felder durch und schaut in welchem ein header eingeschleust werden kann.

gruss joerg

1 Like

Hallo,

Die DB kommt von mir. Ist also geprüft. Und es ist einfacher,
auf der Eingabeseite alles, also auch die readonly-Variablen,
mit post weiterzugeben. Aber ich denke noch mal drüber nach.

dein formular ist nicht im geringsten verbindlich, es haelt
mich nicht davon ab zu posten, was ich will.
ich koennte eben zwischendurch z.b. mit den firefox plugins
tamper data den request, oder webdeveloper toolbar den
formularinhalt bearbeiten (eben auch disabled felder
editierbar machen).

Alles klar, dann muss ich eben noch mal ran ;( .

Danke für den Hinweis!

Alles Gute, Felix

Es gibt Mailer-Klassen
z.B. phpmailer oder swiftmailer

eine korrekte email nach standard zu erzeugen (hab vergessen jetzt welchen) ist recht aufwendig. solche klassen bieten sich an, da du nur noch methoden benutzen musst. auch was anhänge, html-emails oder das senden direkt über smtp angeht ist sehr viel einfacher zu verwirklichen.

warum das rad neu erfinden :smile:

Hallo,

z.B. phpmailer oder swiftmailer

Danke, aber es funktioniert ja schon perfekt. Und eine Mailer-Klasse in Joomla einzubinden, ist mir zu viel Lernaufwand.

Cheers, Felix