Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#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?

antiheld2000 schrieb:

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 cool .

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&auml;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&uuml;ltig zu sein !';
$kls['send']='Ihre Nachricht wurde erfolgreich an uns abgeschickt. Wir werden uns in K&uuml;rze bei Ihnen melden.';
$kls['not_send']='Ihre Nachricht konnte nicht verschickt werden, der Server ist wahrscheinlich nicht bereit oder &uuml;berlastet.<p> Versuchen Sie es sp&auml;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 &raquo;';
$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&uuml;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&ouml;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&szlig;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&ouml;glicht, Ihnen per Email direkt eine Nachricht zu schicken.</p>
    <h3>Wie wird es eingesetzt?</h3>
    <p>Sie m&uuml;ssen lediglich eine Tag in die gew&uuml;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&auml;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 &Auml;nderung auch jede Sprache verwendet werden. </p>
    <h3>Was f&uuml;r Parameter gibt es und welche sind n&ouml;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)&lt;piratos@coftware.de&gt;</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  roll

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

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