Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SwiftMailer // HTML und TEXT Nachricht senden

Einklappen

Neue Werbung 2019

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

  • [Erledigt] SwiftMailer // HTML und TEXT Nachricht senden

    N'abend,

    ich hab da mal ne Frage, die ich nicht ganz verstehe.

    Ich möchte gern eine Mail senden, die HTML und Plain-Text enthält.
    Dies muß ich ja gesondert rübersenden.

    Also:
    PHP-Code:
        // Inhalt als HTML E-Mail
        
    $link "http://".$_SERVER['HTTP_HOST']."/email_conform?code=123";
        
    $data['html'] = mb_convert_encoding(
                        
    '<html>
                           <head>
                             <title>' 
    $data['subject'] . '</title>
                           </head>
                             <body>
                               <p><b>11Nur noch einen Schritt entfernt um Ihre Emailadresse zu bestätigen</p>
                               <p>Klicken Sie bitte auf nachfolgenden Link oder kopieren Sie sich diesen und rufen ihn im Browser Ihrer Wahl auf</p>
                               <p><a href="'
    .$link.'">Email Adresse bestätigen</a></p>
                             </body>
                         </html>'
    'UTF-8'); 
        
        
    // Sollte identisch sein mit der HTML Email... nur ohne HTML-Formatierungszeichen
        
    $data['text'] = '22Nur noch einen Schritt entfernt um Ihre Emailadresse zu bestätigen\r
                         Klicken Sie bitte auf nachfolgenden Link oder kopieren Sie sich diesen und rufen ihn im Browser Ihrer Wahl auf
                        '
    .$link;

        
    $mail = new Swift_Message($data['subject']);                            // Mail erstellen
        
    $mail->setBody($data['html'],"text/html")
             ->
    addPart($data['text'],"text/plain")
             ->
    setCharset($data['charset'])
             ->
    setContentType("text/html")
             ->
    setFrom($data['from']['email'], $data['from']['name'])            // Absender angeben
             
    ->setTo($data['to']['email'], $data['to']['name']);                // Empfänger angeben 
    Prinzipell klappt das. Das Problem ist nur, das die Email im Text Format aus dem Inhalt dem HTML String ist.
    Sprich: Beim HTML habe ich die beginnende Zeichenkette '11' drin. Sowie Fettschrift.
    Dies wird auch korrekt angezeigt.

    Verschiebe ich die Mail in den Spam Ordner (kein HTML) wird der HTML Code als Text angezeigt. Der <body> und der andere HTML Teil fehlt.
    Dennoch wird die Email als Text korrekt angezeigt.

    Die Frage ist nun:
    Ist das so üblich, das einfach die HTML Elemente entfernt werden so dass ein Text-plain Code rauskommt?
    Oder habe ich einen Fehler ?

    Danke

  • #2
    Verschiebe ich die Mail in den Spam Ordner (kein HTML) wird der HTML Code als Text angezeigt. Der <body> und der andere HTML Teil fehlt.
    Dennoch wird die Email als Text korrekt angezeigt.

    Kommentar


    • #3
      Zitat von nikosch Beitrag anzeigen
      Outlook. Email, die im Spam Ordner liegen werden als Text angezeigt.
      Schlecht formatierte Emails sehe ich manchmal als HMTL-Quellcode.
      Nicht so bei meiner Email.
      Da werden alle HTML-Elemente entfernt und angezeigt.

      Aber meiner MEinung nach, dürfte dann Unsinn sein.
      Warum sende ich dann ein Content in plain mit, wenn der HTML-Content in bereinigter Form verwendet wird.
      Deshalb vermute ich, dass ich irgendwo n Fehler drin hab.

      Kommentar


      • #4
        Ach so. Aber ergibt sich daraus irgendeine Relevanz? Teste den Kram in gängigen Web- und native Clients und pfeif auf die Spamdarstellung. Entscheidend ist, dass die System mit HTML-Unterstützung wahlweise beide Nachrichten drastellen können.

        Kommentar


        • #5
          Zitat von nikosch Beitrag anzeigen
          Ach so. Aber ergibt sich daraus irgendeine Relevanz?
          Janein. AKtuel noch nicht... aber später würde ich gern ein abweichenden Text verwenden wollen. Aktuell geht dies ja nicht, weil immer der HTMLString verwendet wird.

          Zitat von nikosch Beitrag anzeigen
          Teste den Kram in gängigen Web- und native Clients
          native Clients = noch nie was davon gehört. Im Web habe ich aber recht viel gefunden... nur damit was anfangen ist was anderes.
          Wie soll ich dort denn einen Code testen, der eine Email versendet... um dann zu Prüfen, ob diese als Text sauber angezeigt wird (?)

          Kommentar


          • #6
            Client = E-Mail-Client
            Web-Client = webbasierter E-Mail-Client
            native Client = nicht webbasierter Client, Desktopanwendung
            in Bezug auf Software (native computing) "Ein Programm, das speziell für ein bestimmtes Betriebssystem (native support) oder einen bestimmten Mikroprozessor (native mode) konzipiert wurde"

            Kommentar

            Lädt...
            X