Sponsor-Board.de
php Mail versenden

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: php Mail versenden (/showthread.php?tid=34377)


php Mail versenden - mech - 13.01.2013 11:19

Hallo Sponsor Board,

ich möchte via php eine Mail mit bestimmten Daten versenden. Das funktioniert auch prima. Doch die Umlaute in der Email werden einfach nicht korrekt ausgegeben.

Hier das Script:

PHP-Code:
<?php
$Header 
"Content-type: text/html; charset=utf-8";  
$mail_absender"[email protected]";
$betreff="Deine Daten gesendet über PHPmail";
$text=
"Guten Tag,\n

Umlaute äüöß

"
;
$text=utf8_encode($text); 
mail($email$betreff$text$header);

?>


Die Umlaute sehen in der gesendeten Mail dann so aus: für o. Spaß

Jemand einen Rat?


RE: php Mail versenden - Dennis - 13.01.2013 11:30

probier mal mittels str_replace vorher alle Umlaute in ihr ASCII-Pendant zu ersetzen.

Sprich aus ä ein &auml; ö &ouml; usw.


RE: php Mail versenden - Web-Lerner - 13.01.2013 11:32

Probier mal das:

Erzwungenes Leerzeichen &nbsp;  
¡ umgekehrtes Ausrufezeichen &iexcl; ¡
¢ Cent-Zeichen &cent; ¢
£ Pfund-Zeichen &pound; £
¤ Währungszeichen &curren; ¤
¥ Yen-Zeichen &yen; ¥
¦ durchbrochener Strich &brvbar; ¦
§ Paragraph-Zeichen &sect; §
¨ Pünktchen oben &uml; ¨
© Copyright-Zeichen &copy; ©
ª Ordinal-Zeichen weiblich &ordf; ª
« angewinkelte Anführungszeichen links &laquo; «
¬ Verneinungs-Zeichen &not; ¬
bedingter Trennstrich &shy; ­
® Registriermarke-Zeichen &reg; ®
¯ Überstrich &macr; ¯
° Grad-Zeichen &deg; °
± Plusminus-Zeichen &plusmn; ±
² Hoch-2-Zeichen &sup2; ²
³ Hoch-3-Zeichen &sup3; ³
´ Akut-Zeichen &acute; ´
µ Mikro-Zeichen &micro; µ
¶ Absatz-Zeichen &para; ¶
· Mittelpunkt &middot; ·
¸ Häkchen unten &cedil; ¸
¹ Hoch-1-Zeichen &sup1; ¹
º Ordinal-Zeichen männlich &ordm; º
» angewinkelte Anführungszeichen rechts &raquo; »
¼ ein Viertel &frac14; ¼
½ ein Halb &frac12; ½
¾ drei Viertel &frac34; ¾
¿ umgekehrtes Fragezeichen &iquest; ¿
À A mit accent grave (Gravis) &Agrave; À
Á A mit accent aigu (Akut) &Aacute; Á
 A mit Zirkumflex &Acirc; Â
à A mit Tilde &Atilde; Ã
Ä A Umlaut &Auml; Ä
Å A mit Ring &Aring; Å
Æ A mit legiertem E &AElig; Æ
Ç C mit Häkchen &Ccedil; Ç
È E mit accent grave (Gravis) &Egrave; È
É E mit accent aigu (Akut) &Eacute; É
Ê E mit Zirkumflex &Ecirc; Ê
Ë E Umlaut &Euml; Ë
Ì I mit accent grave (Gravis) &Igrave; Ì
Í I mit accent aigu (Akut) &Iacute; Í
Î I mit Zirkumflex &Icirc; Î
Ï I Umlaut &Iuml; Ï
Ð großes Eth (isländisch) &ETH; Ð
Ñ N mit Tilde &Ntilde; Ñ
Ò O mit accent grave (Gravis) &Ograve; Ò
Ó O mit accent aigu (Akut) &Oacute; Ó
Ô O mit Zirkumflex &Ocirc; Ô
Õ O mit Tilde &Otilde; Õ
Ö O Umlaut &Ouml; Ö
× Mal-Zeichen &times; ×
Ø O mit Schrägstrich &Oslash; Ø
Ù U mit accent grave (Gravis) &Ugrave; Ù
Ú U mit accent aigu (Akut) &Uacute; Ú
Û U mit Zirkumflex &Ucirc; Û
Ü U Umlaut &Uuml; Ü
Ý Y mit accent aigu (Akut) &Yacute; Ý
Þ großes Thorn (isländisch) &THORN; Þ
ß scharfes S &szlig; ß
à a mit accent grave (Gravis) &agrave; à
á a mit accent aigu (Akut) &aacute; á
â a mit Zirkumflex &acirc; â
ã a mit Tilde &atilde; ã
ä a Umlaut &auml; ä
å a mit Ring &aring; å
æ a mit legiertem e &aelig; æ
ç c mit Häkchen &ccedil; ç
è e mit accent grave (Gravis) &egrave; è
é e mit accent aigu (Akut) &eacute; é
ê e mit Zirkumflex &ecirc; ê
ë e Umlaut &euml; ë
ì i mit accent grave (Gravis) &igrave; ì
í i mit accent aigu (Akut) &iacute; í
î i mit Zirkumflex &icirc; î
ï i Umlaut &iuml; ï
ð kleines Eth (isländisch) &eth; ð
ñ n mit Tilde &ntilde; ñ
ò o mit accent grave (Gravis) &ograve; ò
ó o mit accent aigu (Akut) &oacute; ó
ô o mit Zirkumflex &ocirc; ô
õ o mit Tilde &otilde; õ
ö o Umlaut &ouml; ö
÷ Divisions-Zeichen &divide; ÷
ø o mit Schrägstrich &oslash; ø
ù u mit accent grave (Gravis) &ugrave; ù
ú u mit accent aigu (Akut) &uacute; ú
û u mit Zirkumflex &ucirc; û
ü u Umlaut &uuml; ü
ý y mit accent aigu (Akut) &yacute; ý
þ kleines Thorn (isländisch) &thorn; þ
ÿ y Umlaut &yuml; ÿ


RE: php Mail versenden - mech - 13.01.2013 11:33

Hey, da ich in php noch Anfänger bin muss ich bei der Funktion str_replace leider passen. Hast du ein Code Beispiel für mich? Vielleicht verstehe ich dann was ich machen muss Wink


RE: php Mail versenden - Dennis - 13.01.2013 11:34

[Link: Registrierung erforderlich]

wenn du dich ernsthaft in zukunft mit php weiter beschäftigen willst, kommst du an der seite nicht vorbei.
Mach dir am besten selbst ein Bild davon, was da für Werte reinkommen und was die Funktion für nen Rückgabewert hat. Das bringt dir mehr, als wenn wir dir alles hinterhertragen.


RE: php Mail versenden - eret12 - 13.01.2013 13:59

Hi,

ich bin mir nicht ganz sicher... aber ich denke mit Unicodes wirst du das Problem los!

eine Umfangreiche liste an Unicodes findest du hier:

[Link: Registrierung erforderlich]


Einfach die Umlaute bzw. Zeichen durch unicodes ersetzen.



Lg eret12


RE: php Mail versenden - GGSeSports - 13.01.2013 16:23

Alles sicherlich richtig was hier steht, aber von der Architektur grauenhaft.

Vielleicht reicht es schon, wenn du folgende Zeile weglässt,
dass ist definitiv ein encoding Fehler:

PHP-Code:
$text=utf8_encode($text); 

oder mache daraus ein

PHP-Code:
$text=utf8_decode($text); 


Welches Encoding hat dein PHP Dokument? Mach dass auf UTF-8

Sende auch folgenden Header:

PHP-Code:
header('content-type: text/html; charset=utf-8'); 


Sollte eigentlich all das nicht beinflussen, aber setzte auch den meta Bereich von Html auf UTF-8

Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

[/php]

Edit: Hier mal eine Mail Klasse von mir, die funktionert solange der header auf utf8 gesetzt ist

PHP-Code:
<?php
class email {
    var 
$email;
    var 
$betreff;
    var 
$an;
    var 
$von;
    function 
email ($tpl) {
        
$this -> email $tpl;
        if (
file_exists ($this -> email)) {
            
$fp fopen ($this -> email"r");
            
$text fread ($fpfilesize($this -> email));
            
fclose ($fp);
            
$this -> email $text;
        } else {
            
$this -> email $tpl;
        }
    }
    function 
an ($an) {
        
$this -> an $an;
    }
    function 
betreff ($betreff) {
        
$this -> betreff $betreff;
    }
    function 
von ($adresse$name '') {
        if (!empty (
$name)) {
            
$this -> von 'From: '$name '<' $adresse '>';
        } else {
            
$this -> von 'From: '$adresse;
        }
    }
    function 
headers ($an$betreff$von_adresse$von_name '') {
        
$this -> an ($an);
        
$this -> betreff ($betreff);
        
$this -> von ($von_adresse$von_name);
    }        
    function 
parse ($search$replace) {
        
$this -> email str_replace ($search$replace$this -> email);
    }
    function 
send () {
        
$this -> email utf8_decode ($this -> email);
        
$this -> betreff utf8_decode ($this -> betreff);
        
$this -> an utf8_decode ($this -> an);
        
$this -> von utf8_decode ($this -> von);
        if (
mail ($this -> an$this -> betreff$this -> email$this -> von)) {
            return 
true;
        } else {
            return 
false;
        }
    }
}
?>

So rufst du die auf:

PHP-Code:
                $noti_mail = new email ('pfad_zum_tempalte_welches_auch_utf_8_ist.txt');
                
$noti_mail -> headers ("empfänger""betreff""absender""absenderName");
                
$noti_mail -> parse ('%var%'$var);
                
$noti_mail -> parse ('%var%'$var);
                
$noti_mail -> parse ('%var%'$var);
                
$noti_mail -> parse ('%var%'$var);
                
$noti_mail -> send();