mail () -> Umlaute?!

  • PHP

  • i-couch
  • 2611 Aufrufe 15 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • mail () -> Umlaute?!

    Hallo Leutz!

    Hab ein Problem mit dem mail() - Befehl unter PHP.
    Die Umlaute wie ö ü ä etc. werden beim Empfäger als irgendwelche komischen Zeichen angezeigt! Das das normal ist, ist mir bekannt, ich finde auch endlos viele Lösungen im i-net, doch keine funtzt bei mir oder ich wende sie falsch an, (tendiere auf Nr.2:D) hoffe ihr könnt mir helfen

    also, hier mein code:

    // Betreff generieren

    $betreff = "Anmeldung eingegangen";

    // Nachricht generieren

    $nachricht = "Hallo Skatenight-Team!\n\nIhr habt eine Helfers-Anmeldung erhalten:\n\nName: $name\nMail: $email\n\nMotivation / Wüschne des angehenden Helfers:\n\n$mitteilung";

    // Absender

    $sendby = $name."@helfer.skatenight.ch";


    // Senden

    mail("$kontakt","$betreff","$nachricht","From: ".$sendby);

    // Bestätigung Browser & Mail

    echo '<b>Deine Anmeldung wurde erfolgreich an uns weitergeleitet!<br><br> Vielen Dank und bis bald!</b>';

    // Anrede

    $best_anrede = "Hallo".$name;

    $best_betreff = "Anmeldung erhalten";
    $best_nachricht = "$best_anrede\n\nVielen Dank für Dein Interesse und Angagement an unserem Skate-Event. Wir werden Deine Anmeldung schnellstmöglich bearbeiten und mit Dir in Kontakt treten.\n\n\nFreundliche Grüsse\n\ndas Skatenight08 - Team\nhttp://www.skatenight.ch/";

    mail("$email","$best_betreff","$best_nachricht","From: ".$kontakt);
  • Hi,
    einfach in den Mail-Header

    Quellcode

    1. Content-type: text/plain; charset=iso-8859-1; format=flowed
    mit schicken.
    charset=iso-8859-1
    ist das wichtige.

    Wenn du auf der eigentlichen Homepage mit abweichendem charset(Bsp. UTF-8) arbeitest, muss noch in den Form-Tag

    Quellcode

    1. accept-charset="iso-8859-1"
    stehen ;)

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • PHP: mail - Manual

    Sprich aus

    Quellcode

    1. mail("$kontakt","$betreff","$nachricht","From: ".$sendby);

    mach

    Quellcode

    1. mail($kontakt,$betreff,$nachricht,'From: '.$sendby."\r\n".'Content-type: text/plain; charset=iso-8859-1; format=flowed');


    Gruß
    Broken Sword

    P.S.
    Habe mal unnötige " entfernt ;)
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Hast du auch den Form-Tag ausgebaut?
    Bsp.

    Quellcode

    1. <form method="post" action="bla.php" accept-charset="iso-8859-1">...</form>


    Wenn ja, poste einfach mal dein bisherigen ganzen Code. (Bitte dies in [code] oder [code=php] -Code)

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • ja, hab ich. hat immernoch nicht gefuntzt

    also hier das formular:

    Quellcode

    1. <form action="helfer2.php" style="font-size:11px;" method="post" accept-charset="iso-8859-1">
    2. <table width="499">
    3. <tr>
    4. <td width="154">Anrede</td>
    5. <td width="300">
    6. <select name="anrede" style="width:86px; font-size:11px;">
    7. <option selected="selected">Herr</option>
    8. <option>Frau</option>
    9. </select> </td>
    10. </tr>
    11. <br />
    12. <tr>
    13. <td>Name</td>
    14. <td><input name="name" type="text" style="width:80px; font-size:11px;" /></td>
    15. </tr>
    16. <tr>
    17. <td>eMail</td>
    18. <td><input name="mail" type="text" style="width:80px; font-size:11px;" /></td>
    19. </tr>
    20. <tr>
    21. <td valign="top"><p>Deine Motivation / <br />
    22. Wünsche?</p>
    23. </td>
    24. <td>
    25. <textarea name="nachricht" cols="50" rows="10" wrap="physical" style="font-size:11px;" ></textarea></td>
    26. </tr>
    27. </table>
    28. <input type="submit" name="Submit" value="Senden" />
    29. <label></label>
    30. </form>
    Alles anzeigen





    hier den php-teil:

    PHP-Quellcode

    1. <?php
    2. $kontakt = 'info@skatenight.ch';
    3. // Variablen Empfangen
    4. $anrede = $_POST['anrede'];
    5. $name = $_POST['name'];
    6. $email = $_POST['mail'];
    7. $mitteilung = $_POST['nachricht'];
    8. // Vollständigkeit überprüfen
    9. if($name == "")
    10. {
    11. echo '<font color="red">Bitte geben Sie einen Namen an</font><br>';
    12. }
    13. else
    14. {
    15. $check_name = 1;
    16. }
    17. if($email == "")
    18. {
    19. echo '<font color="red">Bitte geben Sie eine E-Mail Adresse an</font><br>';
    20. }
    21. else
    22. {
    23. $check_mail = 1;
    24. }
    25. if($mitteilung == "")
    26. {
    27. echo '<font color="red">Sie haben keine Mitteilung mitgegeben</font><br>';
    28. }
    29. else
    30. {
    31. $check_bemerkung = 1;
    32. }
    33. if($check_name == 1 && $check_mail == 1 && $check_bemerkung == 1)
    34. {
    35. // Betreff generieren
    36. $betreff = "Anmeldung eingegangen";
    37. // Nachricht generieren
    38. $nachricht = "Hallo Skatenight-Team!\n\nIhr habt eine Helfers-Anmeldung erhalten:\n\nName: $name\nMail: $email\n\nMotivation / Wüschne des angehenden Helfers:\n\n$mitteilung";
    39. // Absender
    40. $sendby = $name."@helfer.skatenight.ch";
    41. // Senden
    42. mail($kontakt,$betreff,$nachricht,'From: '.$sendby."\r\n".'Content-type: text/plain; charset=iso-8859-1; format=flowed');
    43. // Bestätigung Browser & Mail
    44. echo '<b>Deine Anmeldung wurde erfolgreich an uns weitergeleitet!<br><br> Vielen Dank und bis bald!</b>';
    45. // Anrede
    46. $best_anrede = "Hallo".$name;
    47. $best_betreff = "Anmeldung erhalten";
    48. $best_nachricht = "$best_anrede\n\nVielen Dank für Dein Interesse und Angagement an unserem Skate-Event. Wir werden Deine Anmeldung schnellstmöglich bearbeiten und mit Dir in Kontakt treten.\n\n\nFreundliche Grüsse\n\ndas Skatenight08 - Team\nhttp://www.skatenight.ch/";
    49. mail($email,$best_betreff,$best_nachricht,'From: '.$kontakt."\r\n".'Content-type: text/plain; charset=iso-8859-1; format=flowed');
    50. }
    51. ?>
    Alles anzeigen



    viiielen dank!
  • Hmmm, fällt mir nur noch ein, utf8_encode() auf die Variablen anzuwenden.
    Sprich aus $betreff wird utf8_encode($betreff);
    Wenn das auch nicht klappt, sende das ganze einfach als HTML Datei und verwende dann htmlspecialchars().

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Hi,
    hast du denn mal als HTML geschickt, wie ich es dir per PN vorschlug?

    Pack mal ein

    Quellcode

    1. header('Content-type: text/plain');
    2. print_r($_POST);
    3. exit;

    Am Anfang von deinem Code.
    Dann können wir mal sehen, ob es ein Prob mit dem Mailen ist oder ob das Problem davor besteht.

    Gruß
    Broken Sword

    edit:
    Dann werde dir alle Felder aus dem $_POST-Array angezeigt, damit es im Browser übersichtlich ist, wird es nicht als Standard-HTML Seite gesendet, sondern als text. Sag einfach mal, was du im Browser zu Gesicht kriegst und ob die Umlaute richtig dargestellt werden.

    Zu deinem Edit:
    Was denn für Zeichen? Die selben, die sonst auch dargestellt wurden? Oder welche, wie &Auml;?
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • kann ich machen, aber was bewirkt denn das? hab den überblick ein wenig verloren^^

    danke!

    edit: ja, hab es versucht über html, doch er brachte einfach andere Zeichen statt umlaute

    also, zu deinem Vorschlag folgende Ausgabe:

    Array ( [anrede] => Herr [name] => Krois Thomas [mail] => krt@i-couch.ch [nachricht] => üübung [Submit] => Senden )

    sagt dir das etwas?
  • Schubidu, oh man..
    Ja okay. Das ist jetzt alles mein Fehler gewesen, dass das so lang gedauert hat.
    Wobei du bei Recherhe auch darauf gekommen wärst.

    encode => verschlüsseln
    decode => entschlüsseln

    Aber wegen "en" und "ent" komm ich da manchmal, vor allem beim schnellen Schreiben durcheinander.

    Sprich, benutz utf8_decode($_POST['nachricht']) und es wird von Erfolg gekrönt sein ;)

    Tut mir leid und Gruß
    Broken Sword

    P.S.
    Doppelposts sind auch in diesem Fall nicht gern gesehen.
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.