mail()-Funktion besser nutzen

Grunge

Erfahrenes Mitglied
Hallo Liebe User,

ich nutze folgende Funktion um Emails zu versenden:

PHP:
 function send_mail($betreff,$to,$from,$reply,$nachricht)
{
$content_type = "Content-Type: text/html\n";
$encoding = "Content-Transfer-Encoding: 8bit\n";

   $msg = $nachricht;

 $header = "MIME-Version: 1.0\n"
              . $from
              . $reply
              . $content_type
              . $encoding;
      mail($to,$betreff,$msg,$header);
}

funtioniert alles einwandfrei, nur nicht so gut wie ich es mir vorstelle ;) Optisch gefällt mir das alles nich. Als erstes:

- als absende steht dort "Apache" da soll aber etwas anderes stehen . . . beispielsweise die URL der seite (also den seitennamen)

und es hängen imme rnoch Server Infos mt dran, ich würde gerne folgendes realisieren:

Ich sende eine formatierte Html-Seite mit. Sprich: ich hab eine Html seite, in der schreibe ich 2 variblen rein (für den Text undden Titel) und dann wenn ich per BRowser beides abesnede soll es an diese Stellen inklusive aller Zeielenumbrüche etc. eingefügt und versendet werden

Wie kann ich das realisieren!? Danke für eure Hilfe ! !
 
Hm, also so wie ich das sehe liegt es am "$from". Da steht doch garnichts drin.
 
Ja okay, aber wie kann ich nun die HTML datei verschicken, muss ich nun in AltBody und Body alle Tags eingeben !!!
 
doch doch, soweit hab ich ja gelesen. Muss ich nun alle Html-Tags (also die meiner formatierten HTML-Seite?) eingeben!? Wenn ja wo !? Das geht meines erahtens nicht aus dem Tutorial heraus vor

DANKE
 
Wie man hier sieht
PHP:
 //Text der EMail setzen
  $email_text = "Hallo! \n\n <b>Dies ist die erste Email mit PHPMailer!</b>";
stehen dir HTML-Tags direkt mit in der Nachricht. Solltest aber, wenn du am Anfang " nimmst entweder alle " escapen (\") oder Am Anfang ' verwenden. Ich weis ja nicht, was du alles an HTML_tags und Eigenschaften drinnenhast.
PHP:
 //Text der EMail setzen
  $email_text = "Hallo! \n\n <b>Dies sind escapte Anführungszeichen \"!</b>"; # Am Anfang " darum müssen alle " im Text escaped werden.

#oder
  $email_text = 'Hallo! \n\n <b>Dies sind normale Anführungszeichen "!</b>'; # Am Anfang ' darum können " einfach so gesetzt werden aber die ' müssen escaped werden.
 
mhh also hier ist nun meine email:

sie kommt aber leer an !

PHP:
function mail_senden($titel,$to,$text)
{
$mail = new PHPMailer();
//Absenderadresse der Email setzen
  $mail->From = "newsletter@salderoldschoolers.com";
  
  //Name des Abenders setzen
  $mail->FromName = "Salderoldschoolers";
  
  //Empfängeradresse setzen
  $mail->AddAddress($to);
  
  //Betreff der Email setzen
  $mail->Subject = $titel;
 $email_text="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td colspan=\"3\"><img src=\"../gfx/galerie/galerie_03.jpg\" width=\"858\" height=\"113\" border=\"0\" alt=\"\"></td></tr><tr><td colspan=\"3\">		<img src=\"../gfx/galerie/galerie_o2.gif\" width=\"858\" height=\"34\" border=\"0\" alt=\"\"></td></tr><tr>	<td width=\"112px\" style=\"background-image:url(../gfx/galerie/galerie_l.gif);background-repeat:repeat\">&nbsp;</td><td width=\"640px\" style=\"background-color:#9BB3BC;text-align:center;vertical-align:middle;min-height:480px\">".$text."</td><td width=\"106px\" style=\"background-image:url(../gfx/galerie/galerie_r.gif);background-repeat:repeat\">&nbsp;</td></tr><tr><td><img src=\"../gfx/galerie/galerie_ul.jpg\" width=\"112\" height=\"65\" border=\"0\" alt=\"\"></td><td style=\"background-image:url(../gfx/galerie/galerie_u.gif);background-repeat:repeat;text-align:center\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"640px\">	<tr><a href=\"http://www.salderoldschoolers.com\">SalderOldSchoolers.com</a><br><a href=\"mailto:webmaster@salderoldschoolers.com\">Webmaster</a>&nbsp;&nbsp;<a href=\"mailto:postmaster@salderoldschoolers.com\">Postmaster</a></tr></table></td><td><img src=\"../gfx/galerie/galerie_ur.jpg\" width=\"106\" height=\"65\" border=\"0\" alt=\"\"></td></tr></table>";
  
  //Text der EMail setzen
  $mail->body = $email_text;
  
  //EMail senden und überprüfen ob sie versandt wurde
  if(!$mail->Send())
  {
     //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
     echo "Die Email konnte nicht gesendet werden";
     echo "Fehler: " . $mail->ErrorInfo;
  }
  else
  {
     //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
     echo "Die Email wurde versandt.";
  }
}

die übrgebenen parameter sind aber nicht leer ! !
 
Du hast das Tutorial nicht richtig gelesen.

http://www.tanmar.info/content/view/36/52/1/2/ hat gesagt.:
PHPMailer unterstützt auch den Versand von Emails im HTML-Format. Dabei wird zusätzlich zu der Nachricht im HTML-Format eine Alternativnachricht im Textformat mit in die EMail eingefügt. Die Wahl des Formats erfolgt dabei über folgenden Befehl:


PHP:
$mail->IsHTML(true); //Versand im HTML-Format festlegen
Außerdem hast du "Body" klein geschrieben.

Du solltest auch noch die Codes darunter anwenden.
PHP:
 //Body enthält die HTML-Nachricht
  //Zeilenumbrüche werden in <br> umgewandelt
  $mail->Body    = nl2br($email_text);
 
  //Altbody enthält die alternative Textform
  //mit strip_tags() werden die HTML-Tags entfernt 
  $mail->AltBody = strip_tags($email_text);
 
Zuletzt bearbeitet:
Zurück