Sandra: Automatische Ausgabe ist nicht fett trotz <b>[...]</b> ?!

Hallo miteinander!

Ich hoffe mal, mir kann jemand helfen...

Ich habe ein Tool geschrieben, das automatisch Mails versendet. Die Ausgabe im Mail sieht eigentlich gut aus! Nur gibt es manchmal solche Datensätze, welche nicht fett sind, wobei die anderen es sind.

Bsp:
99 Die Page: http://intranet.***.ch/is/IS_S-CH/Regelwerk/Regelwerk.asp
verweist auf: https://cio.***.com/cms/cio/en/infosec/infosec-guide/Documents/is_guides_p_snm_rules_operation.pdf

  
<b>100 Die Page: http://intranet.***.ch/is/IS_S-CH/Regelwerk/Regelwerk.asp  
verweist auf: https://intranet.legal.siemens.com/WorkingTools/SampleContracts/showcontracts.cfm?cat=13</b>

Oder z.B. steht manchmal im Mail:

17 Die Page: http://intranet.***.ch/is/IS_S-CH/Regelwerk/Regelwerk.asp  
verweist auf: < a href='https://circulars.***.com/content/circulars/ca/DocLib/CircularsDocLib/cit0911.pdf'>https://circulars.siemens.com/content/circulars/ca/DocLib/CircularsDocLib/cit0911.pdf

statt der URL ohne <a href>.

In meinem Code sieht es wie folgt aus:

  
$e_mail = "<html><head><title>Broken Links</title></head><body>";  

[...]

  
foreach ($fehler_pro_status as $index)  
{  
	$e_mail .= "< /br>< /br>".$i." Die Page: <a href='".$alle_links[$index]["parent"]."'>".$alle_links[$index]["parent"]."</a>< /br>verweist auf: <a href='".$alle_links[$index]["url"]."'>".$alle_links[$index]["url"]."</a>";  
				$i++;  
}  

[...]

  
//End-Tags für die Mail  
	$e_mail .= "</ body></ html>";  

Weiss jemand die Lösung?

Danke schon mal im Voraus!
Gruss
Sandra

  1. Hello Sandra,

    Weiss jemand die Lösung?

    entscheide Dich, ob Du eine klassische eMail schreiben willst, oder eine MIME-Mail.
    In der klassischen eMail dürfen nur Zeichen aus dem ASCII-Bereich vorkommen, also Code(point)s von 0 bis 127, und von denen auch noch nicht mal alle ;-)

    Es handelt sich dabei um reine Textmitteilungen, die keinerlei Formatierungen übermitteln können.

    Erst mit der Einführung der Multipurpose Internet Mail Extensions (MIME http://de.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions) ist es möglich, auch HTML-Mails zu senden. Wie dies geht, findest Du hier im Archiv, wenn Du "MIME Mail" in das Suchfeld eingibst.

    Wenn der User dann einen passenden Client hat, werden ihm die HTML-Mails auch in der üblichen Weise angezeigt.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Es handelt sich dabei um reine Textmitteilungen, die keinerlei Formatierungen übermitteln können.

      Erst mit der Einführung der Multipurpose Internet Mail Extensions (MIME http://de.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions) ist es möglich, auch HTML-Mails zu senden. Wie dies geht, findest Du hier im Archiv, wenn Du "MIME Mail" in das Suchfeld eingibst.

      Hallo Tom!
      Danke für deine Antwort!

      Aber das hab ich doch:

        
      //Header zum Mail mit HTML-TAGs versenden, um Schrift in Mail fett etc anzeigen zu können!  
      	$header  = 'MIME-Version: 1.0'."\n";  
      	$header .= 'Content-type: text/html; charset=iso-8859-1';  
      	$header .= 'From: is.ch@siemens.com'.'\r\n';  
        
      	// Hier wird das Mail verschickt wenn das Programm fertig ist  
      	mail($mail,"Broken Links Resultate der Prüfung von ".$url, $e_mail, $header, "-f is.ch@***.com");  
      
      

      Das kommt dann in den Header der Mail..

      Gruss
      Sandra

      1. Hello,

        Für de Versendung auf einem Linux-Host, der das sendmail-Script verwendet:

        //Header zum Mail mit HTML-TAGs versenden, um Schrift in Mail fett etc anzeigen zu können!
        $header  = 'MIME-Version: 1.0'."\n";
        $header .= 'Content-type: text/html; charset=iso-8859-1'."\n";

        $header .= 'From: is.ch@siemens.com'."\n\n";   ## wenn es der letzte Header-Eintrag ist

        $header .= $e_mail;

        // Hier wird das Mail verschickt wenn das Programm fertig ist
          mail($mail,"Broken Links Resultate der Prüfung von ".$url, '', $header, "-f is.ch@***.com");

          
          
        Dann probier es nochmal so.  
        Ist immer noch schmudgelig, könnte aber schon mal funktionieren.  
          
        Bitte lies Dich da mal durchs Archiv!  
          
          
          
          
        Liebe Grüße aus dem schönen Oberharz  
          
          
        Tom vom Berg  
        ![](http://selfhtml.bitworks.de/Virencheck.gif)  
          
        
        -- 
        Nur selber lernen macht schlau  
        <http://bergpost.annerschbarrich.de>
        
        1. Dann probier es nochmal so.
          Ist immer noch schmudgelig, könnte aber schon mal funktionieren.

          Heeeey... Danke viel mal!
          Werd ich mal so testen! Ich hoffe, es funktioniert!

          Gruss aus der Schweiz : )

          Sandra

          1. Hello,

            Heeeey... Danke viel mal!
            Werd ich mal so testen! Ich hoffe, es funktioniert!

            Gruss aus der Schweiz : )

            You're welcome :-)

            Wie hoch sitzt Du denn aktuell über dem Meeresspiegel?

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. Wie hoch sitzt Du denn aktuell über dem Meeresspiegel?

              Liebe Grüße aus dem schönen Oberharz
              Tom vom Berg

              hahahaha : )

              Zürich ist etwa 408 Meter über dem Meeresspiegel : )

              Und wir haben sonniges Wetter, etwas bewölkt : ) Und Oberharz? ; )

              Gruss

              1. Hello,

                Wie hoch sitzt Du denn aktuell über dem Meeresspiegel?

                hahahaha : )

                Zürich ist etwa 408 Meter über dem Meeresspiegel : )

                Und wir haben sonniges Wetter, etwas bewölkt : ) Und Oberharz? ; )

                Bei uns ist es schwül warm. Es hat schon gepladdert heute am Morgen.
                Jetzt im Moment kommt gerade die Sonne heraus.

                Ich sitze hier auf ca. 610m Höhe.
                Der Ort reicht von 540m bis 820m. Das ist manchmal recht lästig, wenn man zu Fuß geht.

                Und klappt Deine Mail jetzt?
                Das ist die Variante für einen Linux-Host, der das/ein Sendmail-Script verwendet. Bei Windows-Hosts muss man es anders machen. Da benötigst Du dann "\r\n" für jeden Header, wie es die RFC für Mail usw. vorschreibt.

                Liebe Grüße aus dem schönen Oberharz

                Tom vom Berg

                --
                Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
                1. Ich sitze hier auf ca. 610m Höhe.
                  Der Ort reicht von 540m bis 820m. Das ist manchmal recht lästig, wenn man zu Fuß geht.

                  oh ja. das kann ich verstehen : )

                  Und klappt Deine Mail jetzt?

                  Bis jetzt schon! Mal sehen, muss noch mehr Tests machen! Danke dir!

                  Das ist die Variante für einen Linux-Host, der das/ein Sendmail-Script verwendet. Bei Windows-Hosts muss man es anders machen. Da benötigst Du dann "\r\n" für jeden Header, wie es die RFC für Mail usw. vorschreibt.

                  Windows-Hosts; )

                  Liebe Grüße aus dem schönen Oberharz

                  Ja, geniess es dort, hast sicher frische Luft : )

                  Gruuss, Sandy, aus Zürich ; )

      2. Hallo Sandra,

        »» Erst mit der Einführung der Multipurpose Internet Mail Extensions (MIME) ist es möglich, auch HTML-Mails zu senden.
        Aber das hab ich doch:

        nein, hast du nicht. ;-)

        $header  = 'MIME-Version: 1.0'."\n";
        $header .= 'Content-type: text/html; charset=iso-8859-1';
        $header .= 'From: is.ch@siemens.com'.'\r\n';

        Der zweiten Headerzeile fehlt der abschließende Zeilenumbruch \n, so dass sie mit der nachfolgenden Zeile verschmilzt. Das macht sie im Endeffekt beide ungültig.

        Ciao,
         Martin

        --
        Die neue E-Mailadresse des Papstes: mailto:urbi@orbi
        1. Hello,

          nein, hast du nicht. ;-)

          $header  = 'MIME-Version: 1.0'."\n";  
          $header .= 'Content-type: text/html; charset=iso-8859-1';  
          $header .= 'From: is.ch@siemens.com'.'\r\n';  
          

          Der zweiten Headerzeile fehlt der abschließende Zeilenumbruch \n, so dass sie mit der nachfolgenden Zeile verschmilzt. Das macht sie im Endeffekt beide ungültig.

          Und der dritten fehlt er auch ;-P

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. Hallo,

            »» »» $header  = 'MIME-Version: 1.0'."\n";
            »» »» $header .= 'Content-type: text/html; charset=iso-8859-1';
            »» »» $header .= 'From: is.ch@siemens.com'.'\r\n';

            »» Der zweiten Headerzeile fehlt der abschließende Zeilenumbruch \n, so dass sie mit der nachfolgenden Zeile verschmilzt. Das macht sie im Endeffekt beide ungültig.
            Und der dritten fehlt er auch ;-P

            wuaah, stimmt! Hab ich gar nicht gesehen!
            Sind Escapes mit '' in Headerzeilen überhaupt zulässig? Wie würde das interpretiert, wenn für die Absenderadresse 'is.ch@siemens.com\r\n' als Literal steht?

            Ciao,
             Martin

            --
            Butterkeksverteiler zu werden ist vermutlich eine der wenigen beruflichen Perspektiven, die sich noch bieten, wenn man einen an der Waffel hat.
              (wahsaga)
            1. (Hallo|Hi(ho)|Tag) Der Martin,

              »» »» »» $header  = 'MIME-Version: 1.0'."\n";
              »» »» »» $header .= 'Content-type: text/html; charset=iso-8859-1';
              »» »» »» $header .= 'From: is.ch@siemens.com'.'\r\n';

              wuaah, stimmt! Hab ich gar nicht gesehen!
              Sind Escapes mit '' in Headerzeilen überhaupt zulässig? Wie würde das interpretiert, wenn für die Absenderadresse 'is.ch@siemens.com\r\n' als Literal steht?

              Erstmal gar nicht, denn String-Literale in einfachen Hochkommas kennen in PHP nur die speziell "escape(d|t)en"
              Zeichensequenzen \ und '.
              Einen CRLF-Zeilenumbruch erzeugt man per "\r\n".

              MffG
              EisFuX

              1. Hello EisFuX,

                wuaah, stimmt! Hab ich gar nicht gesehen!
                Sind Escapes mit '' in Headerzeilen überhaupt zulässig? Wie würde das interpretiert, wenn für die Absenderadresse 'is.ch@siemens.com\r\n' als Literal steht?

                Erstmal gar nicht, denn String-Literale in einfachen Hochkommas kennen in PHP nur die speziell "escape(d|t)en"
                Zeichensequenzen \ und '.
                Einen CRLF-Zeilenumbruch erzeugt man per "\r\n".

                Das hat Martin nicht gemeint, sondern was das '\r\n' in der Mail bewirken wird, da es ja als normale Zeichenfolge drin stehen blieben wird, so wie Sandra das geschrieben hatte. :-)

                Liebe Grüße aus dem schönen Oberharz

                Tom vom Berg

                --
                Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
              2. Hallo,

                »» »» $header .= 'From: is.ch@siemens.com'.'\r\n';
                »» Sind Escapes mit '' in Headerzeilen überhaupt zulässig? Wie würde das interpretiert, wenn für die Absenderadresse 'is.ch@siemens.com\r\n' als Literal steht?
                Erstmal gar nicht, denn String-Literale in einfachen Hochkommas kennen in PHP nur die speziell "escape(d|t)en" Zeichensequenzen \ und '.
                Einen CRLF-Zeilenumbruch erzeugt man per "\r\n".

                eben, das ist mir klar, und Sandra hatte ja hier fälschlicherweise '\r\n' notiert, also mit "falschen" Anführungszeichen. Das würde dazu führen, dass die Zeichen exakt so in den Mailheader gelangen: Ein Backslash, ein r, noch ein Backslash, ein n.

                Also nochmal die Frage: Wie würde so eine Sequenz im einem Mail-Header interpretiert? Als Fehler? Oder hat diese Schreibweise da auch eine spezielle Bedeutung?

                Ciao,
                 Martin

                --
                Wenn zwei dasselbe tun, sind sie vielleicht bald zu dritt.
                1. Hello,

                  Also nochmal die Frage: Wie würde so eine Sequenz im einem Mail-Header interpretiert? Als Fehler? Oder hat diese Schreibweise da auch eine spezielle Bedeutung?

                  Welche RFC ist dafür noch aktuell zuständig? RFC1522 würde ich jetzt vermuten.

                  http://www.faqs.org/rfcs/rfc1522.html

                  Liebe Grüße aus dem schönen Oberharz

                  Tom vom Berg

                  --
                  Nur selber lernen macht schlau
                  http://bergpost.annerschbarrich.de
    2. Hallo Tom,

      entscheide Dich, ob Du eine klassische eMail schreiben willst, oder eine MIME-Mail.

      ja, richtig.

      In der klassischen eMail dürfen nur Zeichen aus dem ASCII-Bereich vorkommen, also Code(point)s von 0 bis 127, und von denen auch noch nicht mal alle ;-)

      Das ist falsch. Auch "klassische" Mails haben einen Content-Type (nämlich text/plain), der als Ergänzung eine Angabe zur Zeichencodierung haben kann. Meist wird ISO-8859-x verwendet, in letzter Zeit immer häufiger auch UTF-8. Nur der Defaultwert, wenn also die Angabe *fehlt*, ist US-ASCII.
      Tatsache ist aber auch, dass selbst in Mails, die implizit US-ASCII sind (dadurch, dass keine Angabe zum Encoding gemacht wird), häufig die ganze Palette der 8bit-Zeichencodes ausgenutzt wird, weil der Absender unbewusst doch seine gewohnte ISO-Latin-Codierung verwendet. Wie die Mailclients das beim Lesen interpretieren, ist dann allerdings Glückssache; zur Not kann man ja im Mailclient die Codierung beim Lesen von Hand umstellen.

      Es handelt sich dabei um reine Textmitteilungen, die keinerlei Formatierungen übermitteln können.

      Naja, auch Zeilenumbrüche, Leerzeilen, Einrückungen durch Blanks etc. sind eine Art Formatierung. Das geht natürlich immer.

      Erst mit der Einführung der Multipurpose Internet Mail Extensions (MIME) ist es möglich, auch HTML-Mails zu senden.

      Und dabei wird empfohlen, die Mails immer als multipart/alternative aufzubauen und darin die Message einmal als HTML und einmal als Plaintext unterzubringen. So haben auch Mailclients, die kein HTML interpretieren (können|dürfen), etwas Sinnvolles zum Anzeigen.

      Wenn der User dann einen passenden Client hat, werden ihm die HTML-Mails auch in der üblichen Weise angezeigt.

      Wenn er das so will. :-)

      So long,
       Martin

      --
      Okay, Alkohol ist keine Antwort.
      Aber manchmal vergisst man beim Trinken wenigstens die Frage.
      1. Hello,

        Das ist falsch. Auch "klassische" Mails haben einen Content-Type (nämlich text/plain), der als Ergänzung eine Angabe zur Zeichencodierung haben kann. Meist wird ISO-8859-x verwendet, in letzter Zeit immer häufiger auch UTF-8. Nur der Defaultwert, wenn also die Angabe *fehlt*, ist US-ASCII.
        Tatsache ist aber auch, dass selbst in Mails, die implizit US-ASCII sind (dadurch, dass keine Angabe zum Encoding gemacht wird), häufig die ganze Palette der 8bit-Zeichencodes ausgenutzt wird, weil der Absender unbewusst doch seine gewohnte ISO-Latin-Codierung verwendet. Wie die Mailclients das beim Lesen interpretieren, ist dann allerdings Glückssache; zur Not kann man ja im Mailclient die Codierung beim Lesen von Hand umstellen.

        Das Problem sind nicht die Mail-Clients, sondern die Relays. Die können (konnten) nur 7Bit verkraften.

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Hallo Tom,

          Das Problem sind nicht die Mail-Clients, sondern die Relays. Die können (konnten) nur 7Bit verkraften.

          oh, ich hoffe doch, die Zeiten sind vorbei.
          Aber davon abgesehen fügen die meisten Mailclients beim Verfassen automatisch ein
           Content-Transfer-Encoding: 8bit
          hinzu, so dass auch die Relay-MTAs "Bescheid wissen" und -wenn sie wirklich nur 7bit können- die Nachricht zur Übertragung entsprechend umcodieren können (müssen).
          Diesen Header kann man natürlich vorsichtshalber auch selbst einbauen, wenn man mit PHP Mails verschickt.

          Schönes Wochenende,
           Martin

          --
          Ich wollt', ich wär ein Teppich.
          Dann könnte ich morgens liegenbleiben.
  2. Hallo Sandra,

    Ich habe ein Tool geschrieben, das automatisch Mails versendet. Die Ausgabe im Mail sieht eigentlich gut aus! Nur gibt es manchmal solche Datensätze, welche nicht fett sind, wobei die anderen es sind.

    In meinem Code sieht es wie folgt aus:

    $e_mail = "<html><head><title>Broken Links</title></head><body>";

    
    > [...]  
    > ~~~php
      
    
    > foreach ($fehler_pro_status as $index)  
    > {  
    > 	$e_mail .= "< /br>< /br>".$i." Die Page: <a href='".$alle_links[$index]["parent"]."'>".$alle_links[$index]["parent"]."</a>< /br>verweist auf: <a href='".$alle_links[$index]["url"]."'>".$alle_links[$index]["url"]."</a>";  
    > 				$i++;  
    > }  
    > 
    
    

    [...]

    //End-Tags für die Mail
    $e_mail .= "</ body></ html>";

      
    Verwendest du in deinem Original-Quelltext tatsächlich "< /br>", "</ body>", "< /html>" usw.?  
    Dann ist es kein Wunder, dass manche HTML-Engine beim Versuch, daraus etwas Sinnvolles zu machen, versagt ...  
      
      
    MffG  
    EisFuX
    
    -- 
    [Nichts ist dem Zuwachs an Wissen förderlicher, als nach einer Antwort korrigiert zu werden.](http://community.de.selfhtml.org/zitatesammlung/zitat119)