mail mit hyperlink

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

  • mail mit hyperlink

    hallo gemeinschaft

    versende ein testfeld als mail mit dem mailbefehl

    in dem textfeld möchte auch gerne einen link haben - leider kommt der in der mail nur als plain text an

    was mache ich da falsch

    PHP-Code:
    <form action="readfile1.php" method="post">
      <
    p>
        <
    textarea name="Inhalt" cols="60" rows="20"></textarea>
        <
    br>
        <
    br>
      </
    p>
      <
    div align="left">
        <
    input type="submit" value="OK">
      </
    div>
    </
    form>


    so versende ich die mail
        $bildmail
    ->settext($bildmail->setbild
    ("hallo.jpg")."<br><br><br>$anrede $data[2] $data[3],
        
        <br><br>
        
    $inhalt1
        
    "
    ); 
    wenn ich sie so versende
    mail("jh..@web.de", "My Subject", $inhalt1);

    dann gehts - doch dann bekomme ich in die mail nicht in den kopf der mail ein bild hinein - dafür benutze ich das script

  • #2
    Wenn du Hyperlinks mit verschicken willst, dann muss die Mail als text/html codiert verschickt werden.
    Aus deinem Code sehe ich leider nicht wo und wie du die korrekten Header für den HTML-Mailversand kreierst. Poste sonst mal die relevanten Stellen.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      PHP-Code:
      <?

          class bildmail
          {
              var $boundary;
              var $bildboundary;
              var $bildID;
              var $BildHeader;
              var $textboundary;
              var $emailheader = "";
              var $empfaenger;
              var $betreff;
              var $textheader;
              
              // Konstruktor (Vorbesetzungen)
              function bildmail()
              {
                  $this->boundary = uniqid(time());
                  $this->bildboundary = uniqid(time());
                  $this->bildID = uniqid(time());
                  $this->textboundary = uniqid(time());
              }

              // Von wem die Email kommt in den Header setzen
              function from()    
              {
                  $this->emailheader .= "From: Test<info@test.de>\n";
                  
      $this->emailheader .= "MIME-Version: 1.0\n";
              }
              
              // Funktion um den Adressaten anzugeben
              function to($to)
              {
                  $this->empfaenger = $to;
              }
              // Funktionn für den Betreff anzugeben
              function subject($subject)
              {
              $subject = "PlanTest";
                  $this->betreff = $subject;
              }
              
              // Textdaten in Email Header packen
              function settext($text)
              {
                  
                  $this->textheader .= "Content-Type: multipart/alternative; 
      boundary=\"$this->textboundary\"\n\n";

                  $this->textheader .= "--$this-
      >textboundary\n";
                  $this->textheader .= "Content-Type: 
      text/plain; charset=\"ISO-8859-1\"\n";
                  $this->textheader .= "Content-Transfer-
      Enconding: quoted-printable\n\n";
                  $this->textheader .= strip_tags($text)."\n\n";
                  $this->textheader .= "--$this->textboundary\n";
                  $this->textheader .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n";
                  $this->textheader .= "Content-Transfer-
      Enconding: quoted-printable\n\n";
                  $this->textheader .= "<html><body>$text</body></html>\n\n";
                  $this->textheader .= "--$this->textboundary-
      -\n\n";
              }        
              
              function setbild($Dateiname)
              {
                  // Überprüfen ob die Datei wirklich existiert
                  if(is_file($Dateiname))
                  {
                      // Herausfinden welcher Grafiktyp die Datei ist            
                      $showbildtyp = substr($Dateiname,-3);

                      // Überprüfen ob Datei überhaupt eine Bildgrafik ist
                      if($showbildtyp == "jpg" || 
      $showbildtyp == "gif" || $showbildtyp == "png")
                      {
                          // Array für verschiedene Grafik Typen
                          $imagetyp = array("jpg" => "jpeg", "gif" => "gif", "png" => "png");

                          // Einlesen der Daten (in Base64 Email Format)
                          $bilddaten = chunk_split(base64_encode(fread(fopen($Dateiname,"rb"),
      filesize($Dateiname))),72);

                          //Bildheader anfangen zusammenzusetzen
                          $header = "--$this->boundary\n";
                          $header .= "Content-Type: image/".$imagetyp[$showbildtyp].";\n 
      name=\"$Dateiname\"\n";
                          $header .= "Content-Transfer-Encoding: base64\n";
                          $header .= "Content-ID: <$this->bildID>\n\n";
                          $header .= $bilddaten."\n\n";
                  
                          // Erzeugter Header an Globalen Bildheader übergeben
                          $this->BildHeader[] = $header;
                  
                          // Ausgade der ID für das Bild in der Email
                          return "<img src=\"cid:$this->bildID\">";
          
                      }
                      else
                      {
                          echo "Angegebene Datei ist kein bekanntes Bildformat...";
                      }
                  }
              }
              
              function send()    
              {
                  $header = $this->emailheader;
                  
                  // Überprüfen ob Attachments angehängt wurden            
                  if(count($this->BildHeader)>0)
                  {
                      $header .=     "Content-
      Type: multipart/related; type=\"multipart/alternative\"; 
      boundary=\"$this->boundary\"\n\n";
                      $header .= "--$this->boundary\n";
                      $header .= $this->textheader;
                      
                      for($i=0;$i<count($this->BildHeader);$i++)
                      {
                          $header .= $this->BildHeader[$i];
                      }
                      
                      $header .= "--$this->boundary--";
                  }
                  else
                  {
                      $header .= $this->textheader;
                  }
                  // Versenden der Mail
                  $subject = "Test";
                  mail("$this->empfaenger","test",$subject,$header);
                  
              }
          }
      ?>
      Zuletzt geändert von jhaustein; 16.09.2005, 11:34.

      Kommentar


      • #4
        Hast du dir die Header der verschickten Emails mal angeschaut ? Sind die wirklich text/html gesetzt ?

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          nee - bloss wenn ich das mache, dann habe ich das bild nicht mehr im kopf der mail - sondern als attachement - und das möchte ich nicht

          Kommentar


          • #6
            wenn ich es auf mixed stele, dann bekomme ich ebenfalls das bild als attachement

            - noch ne idee?

            Kommentar


            • #7
              Also in html Mails kannste Bilder direkt einbauen (wie auf einer Webseite)

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                könntest du mir beschreiben wie - kann ich dann diesen ansatz, den ich bisher habe vergessen?

                ich bekomme es nur hin

                entweder bild im kopf und kein hyperlink in der mail oder mail mit hyperlink und bild als attachement

                leider nicht beides zusammen
                Zuletzt geändert von jhaustein; 14.09.2005, 15:33.

                Kommentar


                • #9
                  gibts da vielleicht einen in der grossen weiten welt, der mir da helfen kann?
                  Zuletzt geändert von jhaustein; 16.09.2005, 11:23.

                  Kommentar


                  • #10
                    vielleicht hat heute einer eine idee?

                    Kommentar


                    • #11
                      Drängel drängel.

                      Vielleicht brichst du erstmal deinen Code um! Dann wird der Thread nicht ganz so ignoriert.

                      Kommentar


                      • #12
                        hab ich gemacht

                        Kommentar


                        • #13
                          Ja, nimm eine fertig gestrickte Class.
                          Wieso willst du das Rad neu erfinden?

                          Google mal nach "class.html.mime.mail" und dann nimm den ersten Hit.

                          Und bevor du dann wieder loskrähst wie man die benutzt, schau dir die Doku und vorallem die Beispiele an.

                          Kommentar


                          • #14
                            ich bekomme es leider nicht hin, das mit dem bild in der mail und dem link

                            Kommentar


                            • #15
                              Junge Junge,

                              wie bist du denn auf deine 700 Beiträge gekommen??!

                              So schwierig ist das nun wirklich nicht.

                              PHP-Code:
                              <?

                              require_once('htmlMimeMail.php');    

                              $fh = fopen('index.html','r'); // Mailtext wird eingelesen.
                              while($line=fgets($fh,1024)){ // Die Index muss im selben Verzeichnis liegen wie diese Datei
                                  $strHtml.=$line;
                              }
                              fclose ($fh);



                              $arrEmpfaenger[] = 'mail@jhaustein.de' ; // Array mit Mailadressen btw: ein Array kann auch mehrere Empfänger enthalten

                              foreach( $arrEmpfaenger as $key => $value ){
                                  
                                  $strEmailTo         = $value;
                                  $strEmailHtml         = $strHtml;
                                  $strEmailSubject    = 'Testmail'; // Subject
                                  
                                  $mail = new htmlMimeMail();
                                  $mail->setHTML($strEmailHtml,'','_img/'); // Verzeichnis für die Bilder => alsu ein Unterverzeichnis mit namen _img
                                  $mail->setSubject($strEmailSubject);
                                  $mail->setReturnPath('mail@jhaustein.de'); // Return Path
                                  $mail->setFrom('IT <mail@jhaustein.de>'); // Absender der Email
                                  $i++;
                              }

                              $mail->send($arrEmpfaenger);

                              echo '<hr>'.count($arrEmpfaenger).' Mail(s) verschickt';

                              ?>
                              In der index.html kommt ganz normales HTML rein. Nix schnick schnack. Die Bilder so einbinden als ob sie im gleichen Verzeichnis liegen würden, also ohne Pfadangaben.

                              Die Bilder musst du nachher zum Versand in den _img Ordner verschieben.

                              Mehr kann ich nun wirklich nicht mehr tun.

                              P.S.: Das ganze läuft mit der von mir oben empfohlenen Mailclass.

                              Kommentar

                              Lädt...
                              X