TO in Mails korrekt escapen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • TO in Mails korrekt escapen

    Ich beschäftige mich gerade mit meiner Email-Klasse. Nun habe ich Probleme mit dem Versand, wenn der Empfängername Sonderzeichen enthält. Zum Beispiel sende ich eine Email an diesen Empfänger:

    "Test <&" <mail@domain.ch>
    Das Email kommt jedoch nie bei mir an. Wenn ich beispielsweise das "&" weglasse funktioniert es problemlos.

    Ich würde nun gerne wissen, wie ich den Empfängernamen escapen muss. Also welche Zeichen sind darin erlaubt und welche können den Mailversand stören?

    Vielen Dank für eure Hilfe.

  • #2
    RFC 2822 Internet Message Format

    Hat auch eigentlich nichts mit PHP zu tun... *move*

    Kommentar


    • #3
      So wirklich beantwortet mir dieses Dokument meine Fragen nicht, zumindest habe ich nichts genaueres als dies gefunden:

      The "period" (or "full stop") character (".") in obs-phrase is
      not a form that was allowed in earlier versions of this or any other
      standard. Period (nor any other character from specials) was not
      allowed in phrase because it introduced a parsing difficulty
      distinguishing between phrases and portions of an addr-spec (see
      section 4.4). It appears here because the period character is
      currently used in many messages in the display-name portion of
      addresses, especially for initials in names, and therefore must be
      interpreted properly. In the future, period may appear in the
      regular syntax of phrase.
      Also sind eigentlich sämtliche Sonderzeichen im Anzeigenamen nicht erlaubt. Welche Zeichen gelten denn auch als Sonderzeichen? Bindestrich, Unterstrich, Umlaute, Zahlen, ...?

      Kann mir jemand dazu eine etwas detailliertere Antwort geben?

      Kommentar


      • #4
        Wirf auch noch einen Blick au 4.4, daraus ergibt sich dann 3 (insb. 3.2.4 & 3.2.5), ggf. andere.

        Kommentar


        • #5
          Strings of characters that include characters other than those
          allowed in atoms may be represented in a quoted string format, where
          the characters are surrounded by quote (DQUOTE, ASCII value 34)
          characters.
          Trotzdem funktioniert es mit bestimmten Sonderzeichen an bestimmten Stellen nicht.

          Zum Beispiel funktioniert es so:

          "Test &<" <mail@domain.ch>

          Kommentar


          • #6
            Zum Beispiel funktioniert es so:
            Und was ist daran falsch?

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              Und was ist daran falsch?
              Das daran etwas falsch sein soll, hat nie jemand behauptet. Die Frage ist nur warum es mit "&<" funktioniert und mit "<&" nicht.

              Kommentar


              • #8
                Also bei mir kommen beide Varianten an.

                Hab mich jetzt nicht näher damit auseinander gesetzt, aber früher war es (IMHO) mal so, dass ein "Anzeigename" nichts im Empfängerfeld zu suchen hat. Das mag aber überholt sein.

                Evtl. macht es sinn, den Empfänger zu kodieren.

                Kommentar


                • #9
                  Original geschrieben von TobiaZ
                  Hab mich jetzt nicht näher damit auseinander gesetzt, aber früher war es (IMHO) mal so, dass ein "Anzeigename" nichts im Empfängerfeld zu suchen hat. Das mag aber überholt sein.
                  Laut der PHP Dokumentation gehen im ersten Parameter von mail() beide Varianten.


                  Original geschrieben von TobiaZ
                  Evtl. macht es sinn, den Empfänger zu kodieren.
                  In was kodieren? Habe schon mit mb_encode_mimeheader() und verschiedenen Zeichensätzen gespielt, ohne Erfolg.

                  Ich wende mich mal an meinen Hoster, wie es scheint, funktioniert es nähmlich, wenn ich an eine andere Emailadresse sende.

                  Kommentar

                  Lädt...
                  X