WernerK: Mail mit Umlaute und Link

Hallo
eine PHP Webseite wird in utf8 ausgegeben.
Es soll eine Mail mit Link versendet werden.
Es klappt soweit das die Mail versendet wird und der Link auch stimmt

Nur der Betreff hat einen Umlaut "ä"

Aktivierungsmail zur Passwortändeung

und der Absender "From" stimmt nicht
Die Mail kommt als cgi-mailer an.

Ich habe es so versucht:

  
 $betreff = "Aktivierungsmail zur Passwortändeung\r\n";  
$header  = "MIME-Version: 1.0\r\n";  
$header .= "Content-type: text/plain; charset=UTF-8\r\n";  
$header .= 'Content-Transfer-Encoding: 8bit\r\n';  
$header .= "From: Passwortreset - <".$user_email.">\r\n";  
						  
$urllink = 'http://www.'.$_SERVER["HTTP_HOST"].'/newpassword.php?User='.$sql['userid'].'&callid='.$callid.'';  
  
$nachricht = 'Nach dem Klicken auf den Link, haben Sie die Möglichkeit ein neues Passwort zu wählen  
.  
.$urllink.  
'	  
';  
$send = mail($empfaenger, $betreff, $nachricht, $header);  
  

Warum wird die Absender Adresse bei From nicht übernommen und wie kann beim Betreff das Sonderzeichen richtig darstellen?

viele Grüße
Werner

  1. beim Betreff das Sonderzeichen richtig darstellen?

    Die Betreffzeile stellt Umlaute nur richtig dar, wenn sie 7bit kodiert sind.

  2. Hallo!

    Warum wird die Absender Adresse bei From nicht übernommen

    Hmm ..., da bin ich mir nicht 100%ig sicher, aber probier's mal so:

    $header .= "From: Passwortreset<".$user_email.">\r\n";  
    
    

    Die Variable '$user_email' gecheckt?

    und wie kann beim Betreff das Sonderzeichen richtig darstellen?

    $send = mail($empfaenger, '=?UTF-8?B?'.base64_encode($betreff).'?=', $nachricht, $header);  
    
    

    Gruß Gunther

  3. Hi,

    Hallo
    Es soll eine Mail mit Link versendet werden.
    Nur der Betreff hat einen Umlaut "ä"

    was dann zu tun ist, hat Gunther ja schon beschrieben und gezeigt. Headerzeilen dürfen nur ASCII-Zeichen enthalten; das gilt nicht nur für den Betreff, sondern auch für die Klartextnamen von Empfänger und/oder Absender.

    Die Mail kommt als cgi-mailer an.

    Ja, weil du keinen From-Header setzt. Glaubst du nicht?? Look here:

    $header .= 'Content-Transfer-Encoding: 8bit\r\n';

    $header .= "From: Passwortreset - <".$user_email.">\r\n";

      
    Diese beiden Zeilen erzeugen \*eine\* lange Headerzeile, die in etwa so aussieht:  
      
    Content-Transfer-Encoding: 8bit\r\nFrom: Passwortreset - <me@example.org>  
      
    In der ersten der beiden zitierten Zeilen setzt du den String in einfache Anführungszeichen, dadurch werden \r\n nicht als CR+Linefeed interpretiert, sondern als Backslash, r, Backslash, n.  
      
    
    > $nachricht = 'Nach dem Klicken auf den Link, haben Sie die Möglichkeit ein neues Passwort zu wählen  
      
    Das Komma hat in diesem Satz nichts verloren.  
      
    Ciao,  
     Martin  
    
    -- 
    Okay, Alkohol ist keine Antwort.  
    Aber manchmal vergisst man beim Trinken wenigstens die Frage.  
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    
    1. Om nah hoo pez nyeetz, Der Martin!

      $nachricht = 'Nach dem Klicken auf den Link, haben Sie die Möglichkeit ein neues Passwort zu wählen
      Das Komma hat in diesem Satz nichts verloren.

      Allerdings darf eins gesetzt werden: „Nach dem Klicken auf den Link haben Sie die Möglichkeit, ein neues Passwort zu wählen“

      wobei sicher noch an der Formulierung gefeilt werden müsste.

      Matthias

      --
      Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Opi und Opium.

      1. Hallo,

        $nachricht = 'Nach dem Klicken auf den Link, haben Sie die Möglichkeit ein neues Passwort zu wählen
        Das Komma hat in diesem Satz nichts verloren.
        Allerdings darf eins gesetzt werden: „Nach dem Klicken auf den Link haben Sie die Möglichkeit, ein neues Passwort zu wählen“

        stimmt, an der Stelle, wo du es eingefügt hast, *muss* sogar eins stehen (erweiterter Infinitiv). Dass es dort fehlt, habe ich übersehen. Dort, wo Werner es gesetzt hat, gehört es jedenfalls nicht hin.

        Merke:

        "Nach dem Vortrag haben Sie die Möglichkeit zu diskutieren."
        Der Nebensatz besteht ausschließlich aus "zu" und einem Verb im Infinitiv -> Kein Komma. Kann sein, dass man nach den neuen Regeln wahlweise eins setzen *darf*, aber da bin ich nicht sicher.

        "Nach dem Vortrag haben Sie die Möglichkeit, mit dem Referenten zu diskutieren."
        Der Nebensatz besteht aus mehr als nur einem Verb im Infinitiv -> Komma muss hin.

        wobei sicher noch an der Formulierung gefeilt werden müsste.

        Jo, die ist nicht perfekt, aber für den Anfang schon mal brauchbar.

        Ciao,
         Martin

        --
        Arzt:    Gegen Ihr Übergewicht hilft wohl nur noch Gymnastik.
        Patient: Sie meinen, Kniebeugen und so?
        Arzt:    Nein, Kopfschütteln. Immer dann, wenn Ihnen jemand was zu essen anbietet.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Om nah hoo pez nyeetz, Der Martin!

          $nachricht = 'Nach dem Klicken auf den Link, haben Sie die Möglichkeit ein neues Passwort zu wählen
          Das Komma hat in diesem Satz nichts verloren.
          Allerdings darf eins gesetzt werden: „Nach dem Klicken auf den Link haben Sie die Möglichkeit, ein neues Passwort zu wählen“

          stimmt, an der Stelle, wo du es eingefügt hast, *muss* sogar eins stehen (erweiterter Infinitiv). Dass es dort fehlt, habe ich übersehen. Dort, wo Werner es gesetzt hat, gehört es jedenfalls nicht hin.

          Es darf. Regel 116

          "Nach dem Vortrag haben Sie die Möglichkeit zu diskutieren."
          Der Nebensatz besteht ausschließlich aus "zu" und einem Verb im Infinitiv -> Kein Komma. Kann sein, dass man nach den neuen Regeln wahlweise eins setzen *darf*, aber da bin ich nicht sicher.

          Man darf. Regel 116

          "Nach dem Vortrag haben Sie die Möglichkeit, mit dem Referenten zu diskutieren."
          Der Nebensatz besteht aus mehr als nur einem Verb im Infinitiv -> Komma muss hin.

          Deine Ausführungen sind für die alte Rechtschreibung korrekt.

          Heute heißt es: Bei Infinitivgruppen mit „zu“ dienen die Kommas der Satzgliederung oder der Vermeidung von Missverständnissen.

          Matthias

          --
          Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Bar und Barsch.