Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 18. Mai 2011 15:23
- antiheld2000
- kennt CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 128
Zeichensatz beim Mailer
Hallo,
ich habe bei einer Seite urplötzlich das Problem, dass die Umlaute falsch per in der per phpmail versendeten E-Mail ankommen (z. B. Mit freundlichen Grüßen). Bei allen Projekten bisher war es nicht notwendig etwas zu ändern, einzustellen o. ä. Hat jemand einen Tipp, woran es liegen könnte?
Das Formular ist ein "stinknormales" Kontaktformular im Pluginsordner…
Dank und Gruß
anti
Offline
#2 18. Mai 2011 15:35
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Zeichensatz beim Mailer
Charset für die Mail richtig eingestellt?
Das Formular ist ein "stinknormales" Kontaktformular im Pluginsordner…
Sorry, meine magische Glaskugel zeigt mir den Code deines Kontaktformulars nur sehr verschwommen - kann daher nix konkreteres vorschlagen .
Offline
#3 18. Mai 2011 15:39
- antiheld2000
- kennt CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 128
Re: Zeichensatz beim Mailer
Die Glaskugel spricht:
[== php ==]
<?php
function smarty_cms_function_kontakt_form($params, &$smarty) {
// Die Inhalte von $kls können Sie nach Ihren Wünschen ändern wie sie wollen.
// Insbwsondere interessant dürften size, rows,cols und style sein
//Damit ist eine leichte Anpassung der Form und auch der Sprache möglich
// wird ein Parameter copy="1" übergeben, dann erhält der Absender automatisch eine Kopie seines Mail
$kls['empty_email']='<p><b>Es wurde keine Empfängeradresse als Parameter bei der Seiteneinbindung angegeben.</b></p><p>Sie sollten sich die Frage stellen, wohin der Kontakt denn geschickt werden soll!</p>';
$kls['anrede']='Bitte geben Sie Ihre Anrede an !';
$kls['nachname']='Bitte geben Sie Ihren Nachnamen an !';
$kls['strasse']='Bitte geben Sie Ihre Strasse an !';
$kls['plz']='Bitte geben Sie Ihre Postleitzahl an !';
$kls['ort']='Bitte geben Sie Ihren Ort an !';
$kls['telefon']='Bitte geben Sie Ihre Telefonnummer an !';
$kls['email']='Bitte geben Sie Ihre E-Mailadresse an !';
$kls['subject']='Bitte geben Sie einen Betreff an !';
$kls['message']='Bitte geben Sie eine Nachricht ein !';
$kls['validemail']='Ihre E-Mailadresse scheint ungültig zu sein !';
$kls['send']='Ihre Nachricht wurde erfolgreich an uns abgeschickt. Wir werden uns in Kürze bei Ihnen melden.';
$kls['not_send']='Ihre Nachricht konnte nicht verschickt werden, der Server ist wahrscheinlich nicht bereit oder überlastet.<p> Versuchen Sie es später noch einmal.</p>';
$kls['your_name']='Ihr Name:';
$kls['your_email']='Ihre E-Mailadresse:';
$kls['your_subject']='Betreff:';
$kls['your_message']='Ihre Nachricht:';
$kls['submit']='Abschicken »';
$kls['reset']='Alle Felder leeren';
$kls['size']=50;
$kls['rows']=10;
$kls['cols']=40;
$kls['style']='style="width: 350px; border: solid 1px black; display: block; margin-bottom: 7px;"';
$kls['style2']='style="font-weight: bold; margin-bottom:10px;"';
$kls['copymail']='Ihre Email über unsere Website hat uns erreicht und wird gerade bearbeitet.'."\n".'Hier die Kopie Ihrer Email:'."\n".'--------------------------------------'."\n\n";
$kls['copymessage']='Eine Kopie Ihrer Email haben wir Ihnen soeben automatisch für Ihre Unterlagen zugeschickt.';
$kls['copysubject']='Kopie :';
$kls['website']='xxxxxx.de';
$copytosender= get_parameter_value($parameters, 'copy', -1);
$to = $params['email'];
$style = true;
if (!empty($params['style']))$style = $params['style'];
$anrede = '';
if (!empty($_POST['anrede'])) $anrede = trim($_POST['anrede']);
$nachname = '';
if (!empty($_POST['nachname'])) $nachname = trim($_POST['nachname']);
$strasse = '';
if (!empty($_POST['strasse'])) $strasse = trim($_POST['strasse']);
$plz = '';
if (!empty($_POST['plz'])) $plz = trim($_POST['plz']);
$ort = '';
if (!empty($_POST['ort'])) $ort = trim($_POST['ort']);
$email = '';
if (!empty($_POST['email'])) $email = trim($_POST['email']);
$subject = '';
if (!empty($_POST['subject'])) $subject = trim($_POST['subject']);
$message = '';
if (!empty($_POST['message'])) $message = trim($_POST['message']);
$nachricht = "";
foreach ($_POST as $key => $value) {
$nachricht .= ucwords($key).": ".$value."\n";
}
$subject = "Nachricht von ";
$subject .= $kls['website'];
if($_SERVER['REQUEST_METHOD']=='POST'){
$extra = "From: $name <$email>\r\n";
echo '<div class="fehler"';
echo ($style)? $kls['style2']:'';
echo '>';
if (empty($anrede)) {
echo $kls['anrede'];
}elseif (empty($nachname)) {
echo $kls['nachname'];
}elseif (empty($strasse)) {
echo $kls['strasse'];
}elseif (empty($plz)) {
echo $kls['plz'];
}elseif (empty($ort)) {
echo $kls['ort'];
}elseif (empty($email)) {
echo $kls['email'];
}elseif (!preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)$/i", $email)){
echo $kls['validemail'];
}elseif (empty($message)) {
echo $kls['message'];
}elseif (@mail($to, $subject, $nachricht, $extra)){
echo $kls['send'].'</div>';
/*if ($copytosender)
{
$extra = "From: ".$kls['website']." <$to>\r\n";
if (@mail($email,$kls['copysubject'].$subject,$kls['copymail'].$message,$extra)){
echo '<div class="fehler"';
echo ($style)? $kls['style2']:'';
echo '>';
echo $kls['copymessage'].'</div>';
}
}*/
return;
}else{
echo $kls['not_send'].'</div>';
return;
}
echo '</div>';
}
?>
<?php if (!$to) {echo $kls['empty_email'];} ?>
<p>An dieser Stelle können Sie uns direkt eine E-Mail zukommen lassen.</p>
<form action="<?php $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'] ?>" method="post" name="kontaktformular" id="kontaktformular">
<div>
<label for="anrede">Anrede <sup>*</sup></label>
<input type="text" name="anrede" id="anrede" value="<?php echo $_POST['anrede']; ?>" size="<?php echo $kls['size']?>" />
</div>
<div>
<label for="nachname">Nachname <sup>*</sup></label>
<input type="text" name="nachname" id="nachname" value="<?php echo $_POST['nachname']; ?>" size="<?php echo $kls['size']?>" />
</div>
<div>
<label for="vorname">Vorname</label>
<input type="text" name="vorname" id="vorname" value="<?php echo $_POST['vorname']; ?>" size="<?php echo $kls['size']?>" />
</div>
<div>
<label for="strasse">Straße <sup>*</sup></label>
<input type="text" name="strasse" id="strasse" value="<?php echo $_POST['strasse']; ?>" size="<?php echo $kls['size']?>" />
</div>
<div>
<div class="labelersatz">
<label for="plz" class="small">PLZ / </label>
<label for="ort" class="small">Ort <sup>*</sup></label>
</div>
<input type="text" name="plz" id="plz" value="<?php echo $_POST['plz']; ?>" class="plz" maxlength="5" />
<input type="text" name="ort" id="ort" value="<?php echo $_POST['ort']; ?>" class="ort" />
</div>
<div>
<label for="telefon">Telefon</label>
<input type="text" name="telefon" id="telefon" value="<?php echo $_POST['telefon']; ?>" size="<?php echo $kls['size']?>" />
</div>
<div>
<label for="telefax">Telefax</label>
<input type="text" name="telefax" id="telefax" value="<?php echo $_POST['telefax']; ?>" size="<?php echo $kls['size']?>" />
</div>
<div>
<label for="email">E-Mailadresse <sup>*</sup></label>
<input type="text" name="email" id="email" value="<?php echo $_POST['email']; ?>" size="<?php echo $kls['size']?>" />
</div>
<div>
<label for="message"><?php echo $kls['your_message']?> <sup>*</sup></label>
<textarea name="message" id="message" cols="<?php echo $kls['cols']?>" rows="<?php echo $kls['rows']?>"><?php echo $message; ?></textarea>
</div>
<input type="submit" class="fbsubmit" value="<?php echo $kls['submit']?>" />
</form>
<?php
}
function smarty_cms_help_function_kontakt_form() {
?>
<h3>Kontakt Formular</h3>
<p>Es zeigt ein Kontaktforumlar an, dass es allen Webbesuchern ermöglicht, Ihnen per Email direkt eine Nachricht zu schicken.</p>
<h3>Wie wird es eingesetzt?</h3>
<p>Sie müssen lediglich eine Tag in die gewüschte Seite setzen oder auch in ihr Template <code>{kontakt_form email="dasbinich@meine.de"}</code></p>
<p>Wenn Sie eien solche Nachricht an mehrere Empfängeradressen versenden wollen, geben Sie einfach durch ein Komma getrennt vor. <code>{kontakt_form email="dasbinich@meine.de,dasbistdu@deine.de"}</p>
<h2>Besonderheiten</h2>
<p>Im Script selbst sind alle Inhalte des Formulares in Variablen gesetzt. Damit kann das komplette Forumlar optimal seinen Wünschen angepasst werden.</p>
<p>Das gilt für den Style genau wie für die Größe der Felder und natürlich kann durch Änderung auch jede Sprache verwendet werden. </p>
<h3>Was für Parameter gibt es und welche sind nötig?</h3>
<ul>
<li>email - An diese Adresse(en) wird die Nachricht verschickt - erforderlich !.</li>
<li><em>(optional)</em>style - true/false, bestimmt die Nutzung des voreingestellten Styles. Voreinstellung ist true.</li>
<li><em>(optional)</em>copy=1 - damit wird ein automatischer Kopienversand an den Absender der Mail bewirkt </li>
</ul>
</p>
<?php
}
function smarty_cms_about_function_kontakt_form() {
?>
<p>Author: Piratos (Jan Czarnowski)<piratos@coftware.de></p>
<p>Version: 1.1</p>
<?php
}
?>
Offline
#4 18. Mai 2011 15:51
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Zeichensatz beim Mailer
Au ja, ich sehe, die Nebel in der Glaskugel lichten sich und bestätigen meine Vermutung, dass das Charset nicht gesetzt wurde. Möglicherweise hattest du bislang nur Glück oder die passenden Server-Einstellungen, dass es funktioniert hat
Es sollte etwas wie
[== PHP ==]
$extra= 'MIME-Version: 1.0' . "\r\n";
$extra.= 'Content-type: text/html; charset=utf-8' . "\r\n";
noch in das Formular eingefügt werden (vor dem Mailversand).
Offline
#5 18. Mai 2011 16:08
- antiheld2000
- kennt CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 128
Re: Zeichensatz beim Mailer
Das Script schlepp ich auch schon seit Jahren mit mir rum. Meine Glaskugel und ich sagen danke.
Offline
#6 18. Mai 2011 16:10
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Zeichensatz beim Mailer
Gelöst?
Offline
#7 18. Mai 2011 16:16
- antiheld2000
- kennt CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 128
Re: Zeichensatz beim Mailer
Bin mir noch nicht 100%ig sicher. Konnte die ausgehenden Mails noch nicht auf einem Win Rechner gegenchecken. Wenn das erfolgt ist, melde ich mich nochmal…
Offline
#8 21. Juli 2011 18:06
- chrissy-dizzy
- kennt CMS/ms
- Ort: Bergisches Land
- Registriert: 14. Dezember 2010
- Beiträge: 212
- Webseite
Re: Zeichensatz beim Mailer
@Cyberman: Habe das gleiche Problem bei NMS. Gleiche Loesung?
Offline
#9 21. Juli 2011 19:01
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Zeichensatz beim Mailer
NMS verwendet den CMSMailer ... und in dessen Administration kannst du den Zeichensatz einstellen.
Offline
Seiten: 1