mail () -> Umlaute?!

  • PHP

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
  • 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 = [email protected]';
    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!
  • 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;?
  • 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.