php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 03-04-2005, 22:32
Armadi
 Newbie
Links : Onlinestatus : Armadi ist offline
Registriert seit: Aug 2004
Beiträge: 37
Armadi ist zur Zeit noch ein unbeschriebenes Blatt
Standard Wieder das leidige Thema "Umlautdarstellung in eMails"

Hey Leute,

Ich weiß, das Thema ist oft und in unterschiedlichen Foren diskutiert worden.
Ich habe es selbst hier vorm kurzem gepostet, habe aber leider keine Lösung
bekommen. Ich poste das Problem nochmals und hoffe, endlich einen
brauchbaren Hinweis oder gar eine Lösung von jemandem zu bekommen.

Mit dem Submit-Button werden zwei Emails abgeschickt. Eines an mich, in
welchem die Anfrage des Absenders enthalten ist. Das zweite Email ist
eine
Bestätigung, die an den Email-Absenders ergeht und teilt ihm mit,
dass
sein Anfrage-Mail an mich verschickt worden ist.

Der Email-Inhalt besteht aus zwei Datenarten: Einem konstanten, in der
PHP-Datei als Nachricht an den Absender kodierten Text, und zum anderen
aus Textdaten, die der Email-Absender im Formular eingegeben hatte.

In dem konstanten Text, der fix in der PHP-Datei kodiert ist, schreibe ich
die deutschen Umlaute in HTML-Codes (z.B.: ü = & uuml). Auf die
Formularfelder, die der Anfrage-Absender im Formular eingibt, habe ich
keinen Einfluss. Diese können auch Umlaute enthalten.

NUN DIE PROBLEME
==============

Problem Nr. 1:
Der konstante Text kommt in dem Bestätigungsmail an den Anfrage
Absender richtig an. Die Umlaute werden als Solche richtig dargestellt.
Nur die Daten, die vom Kunden in das Formular eingegeben wurden,
werden falsch dargestellt. Ich habe alle nur erdenklichen Varianten und
Möglichkeiten probiert, aber vergeblich; die Umlaute werden als wirres
Zeichen gezeigt. Ich bin mit meinem Latein am Ende. Wer kann mir helfen?

Problem Nr. 2:
Auf dieser Art versendete Emails werden von manchen Mailservern (z.B.
von GMX) als Spam vermutet und direkt in den Spamordner abgelegt und
nicht im Posteingangsordner.

Hier der Code:

Datei: mailversand.php

PHP-Code:
<?php
/* Empfaenger */
$to  $email// Kundeneingabe in das Formular

/* Weitere Daten */
$datum date("d.m.Y") . "/" date("H:i");
$buero  "buero@uebrsetzung.de";

/* Betreff */
$betreff "Übersetzung / " $dokument
//Übersetzung ist konstant; Variable '$dokument' ist eine Eingabe
//aus dem Formular. Der Inhalt kann sein: Reisepaß + Führerschein

/* 1. Email - Nachricht an den Kunden*/
$message '
<html>
<head>
<title> Übersetzung </title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
//auch mit "charset=iso-8859-1" probiert
</head>
<body>
'
;

$message .='<table><tr><td>'.$firma.'<br></tr></td>';
$message .='<tr><td>'.$anrede.' '.$titel.' '.$vorname.' ';
$message .=.$nachname.'<br></td></tr>';
$message .='<tr><td>'.$strasse.'<br></td></tr>';
$message .='<tr><td>'$plz.' '.$ort.'<br><br><tr><td>';
$message .='<tr><td>';
$message .=.$sehr.' '.$anrede.' '.$titel.' '.$nachname.' ';
$message .='<br><br></td></tr>';
/*
jetzt kommt mein konstant kodierter Text. Dieser Text kommt
richtig mit umgewandelten Umlauten und anderen Sonderzeichen
beim Empfänger an, egal ob ich die Umlaute als sloche ausschreibe
oder in kodierter Form.
*/
$message .='<tr><td>Vielen Dank f&uuml;r Ihre Anfrage. Wir werden';
$message .='Sie bald kontaktieren und Ihnen einen unverbindlichen';
$message .='Kostenvoranschlag machen.<br><br>Bis dahin verbleiben';
$message .='wir mit freundlichen Gr&uuml;ssen,<br><br>';
$message .='Ihr GlobTrans-Team<br><br></td></tr>';
$message .='<tr><td>Berlin, am '.$datum.'</td></tr>';
$message .='-------------------------------------------------<br>';
$message .='</body></html>';

/*
2. Email – Anfrage des Kunden an mich. All diese Angaben, die der
Kunde über Formular ausfüllt und an mich abschickt, kommen
nicht richtig an. Die Umlaute werden nicht dargestellt. Ebenfalls
die Formulardaten aus dem 1. Mail
*/
$order '
<html>
<head>
<title>Uebersetzung</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
//auch "charset=8859-1" probiert
</head>
<body>
'
;

$order .= '
<table><tr>  <td>Folgende Info-Anforderung wurde am '
.$datum.
abgeschickt:<br><br></td></tr>'
;
$order .= '<tr> <td>Firma: '.$firma.'<br></td></tr>';
$order .='<tr><td>Anrede/Titel/Name: '.$anrede.' '.$titel.' ';
$
0rder .=.$vorname.' '.$nachname.'<br></td></tr>';
$order .='<tr><td>Strasse: '.$strasse.'<br></td></tr>';
$order .='<tr><td>PLZ/Ort: '.$plz.' '.$ort.'<br></td></tr>';
$order .='<tr><td>Land: '.$land.'<br></td></tr>';
$order .='<tr><td>Telefon: '.$telefon.'<br></td></tr>';
$order .='<tr><td>Fax: '.$fax.'<br></td></tr>';
$order .='<tr><td>Handy: '.$mobil.'<br></td></tr>';
$order .='<tr><td>E-Mail: '.$email.'<br></td></tr>';
$order .='<tr><td>EU_Steuer Nr.: '.$eust.'<br></td></tr>';
$order .='<tr><td>Geburtsdatum: '.$gebdat.'<br></td></tr>';
$order .='<tr><td>Dokumentart: '.$dokument.'<br></td></tr>';
$order .='<tr><td>Anzahl Zeilen: '.$zeilen.'<br></td></tr>';
$order .='<tr><td>Quellsprache: '.$qsprache.'<br></td></tr>';
$order .='<tr><td>Zielsprache: '$zsprache.'<br></td></tr>';
$order .='<tr><td>Beglaubigung: '.$beglaubigt.'<br></td></tr>';
$order .='<tr><td>Beschreibung: '.$beschreibung;
$order .='<br></td></tr>';
$order .='<tr><td>Erreichbar von: '.$zeit_von .' bis  ';
$order .=.$zeit_bis .'<br></td></tr>';
$order .='<tr><td>Mitteilung:<br>'.$beschreibung.'<br></td></tr> ';
$order .='<tr><td>- Ende der automatisch generierten eMail - <br>';
$order .='</td></tr>';
$order .='</table></body></html>
'
;

/* Einstellung des Header-Bereichs für das Mail an den Kunden*/
$headers_gw  "MIME-Version: 1.0\r\n";
$headers_gw .= "Content-type: text/html; charset=iso-8859-15\r\n";
$headers_gw .= "Content-type: text/html; charset=utf-8\r\n";
// $headers_gw .= "Content-Transfer-Encoding: 8bit\r\n";

/* zusätzliche Header */
$headers_gw .= "To: ".$to."\r\n";
$headers_gw .= "From: ".$absender."\r\n";
$headers_gw .= "CC: \r\n";
$headers_gw .= "BCC: \r\n";

/* Header für das Kunden-Email an mich */
$headers_ku  "MIME-Version: 1.0\r\n";
$headers_ku .= "Content-type: text/html; charset=iso-8859-15\r\n";
$headers_ku .= "Content-type: text/html; charset=utf-8\r\n";

/* zusaetzliche Header für das unden-Email an mich*/
$headers_ku .= "To: ".$globweb."\r\n";
$headers_ku .= "From: ".$to."\r\n";
$headers_ku .= "CC: \r\n";
$headers_ku .= "BCC: \r\n";

/* Verschicken der Mail */
@mail($buero,$betreff,$order,$headers_ku);
@
mail($to,$betreff,$message,$headers_gw);
}
?>
NUN: Alle Daten, die aus den Formulareingaben stammen, kommen falsch
an. Die Umlaute werden nicht angezeigt, und zwar so:

ö wird als ‚ Ã’ angezeigt (König = KÃnig)
ä wird als ‚ä’ angezeigt (zusätzlich = zusätzlich)
ü wird als ‚ü’ angezeigt (Führerschein = Führerschein)
ß wird als ‚Ã’ angezeigt (Reisepaß = ReisepaÃ)

BITTE UM EURE LÖSUNGSVORSCHLÄGE! ABER BITTE KEINE POLEMISCHEN
DISKUSIONEN, SONDERN LÖSUNGEN.

DANKE AN ALLE IM VORAUS.

Geändert von Armadi (04-04-2005 um 00:21 Uhr)
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 03-04-2005, 22:33
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

code umbrechen, die leute hier scrollen nich so gerne!

ich übrigens auch nicht.
Mit Zitat antworten
  #3 (permalink)  
Alt 03-04-2005, 22:37
Armadi
 Newbie
Links : Onlinestatus : Armadi ist offline
Registriert seit: Aug 2004
Beiträge: 37
Armadi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

danke! Ich werde es korrigieren.
Mit Zitat antworten
  #4 (permalink)  
Alt 03-04-2005, 23:04
p_rehm
 Junior Member
Links : Onlinestatus : p_rehm ist offline
Registriert seit: Jul 2004
Beiträge: 220
p_rehm ist zur Zeit noch ein unbeschriebenes Blatt
p_rehm eine Nachricht über AIM schicken p_rehm eine Nachricht über Yahoo! schicken
Standard

ich würd den nochmal umbrechen. ich hab immer noch nen scrollbalken.
Mit Zitat antworten
  #5 (permalink)  
Alt 04-04-2005, 00:24
Armadi
 Newbie
Links : Onlinestatus : Armadi ist offline
Registriert seit: Aug 2004
Beiträge: 37
Armadi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also, ich habe alles Mögliche probiert und mehrmals umgebrochen, aber es gelingt mir nicht, diesen Scroll nach rechts zu beseitigen. Es tut mir Leid.
Mit Zitat antworten
  #6 (permalink)  
Alt 04-04-2005, 00:28
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

0. viel besser!
1. doppelte header gehen schonmal gar nicht klar (charset und content-type). wenn's aber eine html-mail ist, warum kodierst du nicht alles fleißig mit htmlentities()?
2. suchen macht ************y.
Mit Zitat antworten
  #7 (permalink)  
Alt 04-04-2005, 02:59
Armadi
 Newbie
Links : Onlinestatus : Armadi ist offline
Registriert seit: Aug 2004
Beiträge: 37
Armadi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

penizillin:

htmlentities() hatte ich schon. Das Eergebnis wird dann im Email in HTML-Codes angezeigt.

Beispiel:

ORIGINAL:
$eingabe_aus_formular = "Ich schreibe 'ä Ä ö Ö' und verschicke sie.";
$eingabe_aus_formular = htmlentities($eingabe_aus_formular);

AUSGABE im Email:
PHP-Code:
Ich schreibe '&auml; &Auml; &ouml; &Ouml;' und verschicke sie
Mit Zitat antworten
  #8 (permalink)  
Alt 04-04-2005, 05:43
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
<meta http-equiv="content-type" content="text/html; charset=utf-8"
Gibt der Kunde unter diesem Header seine Daten ein ?
Wenn ja dann dürfte dein Problem in der Codierung der Zeichen liegen. Denn wenn der Kunde ein ü eingibt, dann muss dieses gemäss deinem
Header in utf-8 enthalten sein --> ist es nicht --> wird falsch codiert
Wie bereits erwähnt wurde solltest du htmlentities() verwenden.
Und zwar mal so probieren:
PHP-Code:
htmlentities('string to be encoded''utf-8'); 
Allenfalls musst du auch ein 2. Komma zwischen den String und den
Zeichensatz setzen (da ein Argument ausgelassen wird)
Wenn du die Message in utf-8 codiert hast, dann sollte es auch keine
Probs mehr mit der Mail geben.

Gruss

tobi
Mit Zitat antworten
  #9 (permalink)  
Alt 04-04-2005, 12:08
Maschenka
 Newbie
Links : Onlinestatus : Maschenka ist offline
Registriert seit: May 2004
Beiträge: 42
Maschenka ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Wieder das leidige Thema "Umlautdarstellung in eMails"

Zitat:
Original geschrieben von Armadi
Problem Nr. 2:
Auf dieser Art versendete Emails werden von manchen Mailservern (z.B. von GMX) als Spam vermutet und direkt in den Spamordner abgelegt und nicht im Posteingangsordner.
Ein Merkmal vieler Spam-Mails ist es, daß sie nur einen HTML-Teil haben, aber keinen als Plain Text. Wenn ich dein Skript richtig deute, wird der gesamte Inhalte deiner Mail nur in HTML ausgegeben, nicht aber als Text vorneweg.
Mit Zitat antworten
  #10 (permalink)  
Alt 04-04-2005, 12:46
stetic
 Newbie
Links : Onlinestatus : stetic ist offline
Registriert seit: Apr 2005
Beiträge: 19
stetic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

versuch mal die Mail Klasse von phpguru.org:
http://www.phpguru.org/static/mime.mail.html

Vereinfacht vieles und damit sollte es auch funktionieren.

Grüsse
Mit Zitat antworten
  #11 (permalink)  
Alt 04-04-2005, 23:35
Armadi
 Newbie
Links : Onlinestatus : Armadi ist offline
Registriert seit: Aug 2004
Beiträge: 37
Armadi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zuerst herzlichen Dank an alle. Und nun meine Antwort:

Javlives:
Zitat:
Gibt der Kunde unter diesem Header seine Daten ein ?
Wenn ja dann dürfte dein Problem in der Codierung der Zeichen liegen. Denn wenn der Kunde ein ü eingibt, dann muss dieses gemäss deinem
Header in utf-8 enthalten sein --> ist es nicht --> wird falsch codiert.
Nein. Der Kunde gibt die Daten unter folgendem Header:
<META http-equiv="content-type" content="text/html; charset=iso-8859-1">


Ich habe aber in der Zwischenzeit die Lösung gefunden. Und zwar werden
die über das Formular eingegeben Daten automatisch in UTF8 kodiert (utf8_encode($eingabe). Ich weiß nicht warum?). Da muß man Sie wieder dekodieren (mit $eingabe = utf8_decode($eingabe)).
So funktioniert es jetzt und die Daten kommen nun richtig an.


Stetic:
Danke für den Hinweis auf die Mailklasse von phpguro. Ich werde deinen Rat zu Herzen nehmenund sehe mir die Site sicher an. Denn jedes zusätzliche Wissen bringt einen bei solchen Problemen einen Schritt weiter.


Maschenka:
Sie haben Recht Maschenka. Ich habe in meiner Mail nur einen HTML-Teil
und keinen PlainText. UND Das will ich nicht. Ich will nicht, dass der gesamte Inhalt meiner Mail nur in HTML ausgegeben wird, sondern auch als Text vornewe.
ALLERDINGS weiß ich nicht, wie das geht.
Wäre nett, wenn Sie mir beschreiben würden, wie das gemacht wird.

Danke

Geändert von Armadi (04-04-2005 um 23:41 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 05-04-2005, 07:01
Maschenka
 Newbie
Links : Onlinestatus : Maschenka ist offline
Registriert seit: May 2004
Beiträge: 42
Maschenka ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Armadi
Maschenka:
Sie haben Recht Maschenka. Ich habe in meiner Mail nur einen HTML-Teil
und keinen PlainText. UND Das will ich nicht. Ich will nicht, dass der gesamte Inhalt meiner Mail nur in HTML ausgegeben wird, sondern auch als Text vornewe.
ALLERDINGS weiß ich nicht, wie das geht.
Wäre nett, wenn Sie mir beschreiben würden, wie das gemacht wird.
Ich habe keine Ahnung, wie das gemacht wird, da ich noch nie das Bedürfnis hatte, welche zu verschicken. Aber wenn ich mir den Link von stetic ansehe, dann vermute ich, daß entweder in "HTML-email" gleich ein Plain-Text-Part enthalten ist oder daß man mit ein wenig Geschick "HTML-email" und "Text-email" kombinieren kann.
Mit Zitat antworten
  #13 (permalink)  
Alt 05-04-2005, 07:17
TBT
  Moderator
Links : Onlinestatus : TBT ist offline
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.787
TBT befindet sich auf einem aufstrebenden Ast
TBT eine Nachricht über ICQ schicken TBT eine Nachricht über AIM schicken TBT eine Nachricht über Yahoo! schicken
Standard

du mußt eine Mime Mail erzeugen, welche aus mehreren Teilen besteht

z.B.

1. Plain/Text
2. Html
3. Dateianhang
4. Dateianhang
5. ...
__________________
TBT

Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!


PHP 2 AllPatrizier II Browsergame
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

04.09.2020 palle_1977 | Kategorie: PHP
numaeks Web-Farbmixer

Die RGB-Farben lassen sich hier auf unterschiedliche Weise mischen. Zur Einstellung werden auch die Dreh- und Schieberegler mit Canvas verwendet. Gespeichert werden die Farben in einem Cookie.

04.09.2020 numaek | Kategorie: JAVASCRIPT/ Tools
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:58 Uhr.