Avatar billede mtrolle Nybegynder
01. juni 2005 - 02:36 Der er 6 kommentarer og
1 løsning

At lave en ordenlig HTML email

Hej.

Jeg har store problemer med mit nuværende script til udsendelse af HTML emails.
Pt. bygger jeg HTML indholdet op og sender det med i emailen. Jeg indstiller naturligvis headers osv., pt. således:
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Mig <noreply@framig.dk>\r\n";

Men disse HTML emails er ikke den optimale metode. Jeg har set flere og flere HTML emails blot indeholder en HTML fil. Kan godt være det er mig der har misforstået noget, men er det muligt at udsende en email og blot vedhæfte html indholdet på en måde?

//mtrolle
Avatar billede kargo1 Nybegynder
01. juni 2005 - 10:35 #1
Avatar billede 13thsky Nybegynder
01. juni 2005 - 10:53 #2
Her er et spørgsmål jeg oprettede i sidste uge, som du nok kan bruge:
http://www.eksperten.dk/spm/620049
Tilgengæld vil jeg gerne høre om du ikke kan vise mig et eksempel på hvordan du laver en SIMPEL html mail?

/13
Avatar billede pallotto Nybegynder
01. juni 2005 - 11:57 #3
Mit bedste svar vil være kig nærmere på http://dk.php.net/manual/en/function.mail.php .. Jeg brugte en del tid på at lave en god HTML mail sender.. ud fra PHP.net's side.
Avatar billede neess Nybegynder
02. juni 2005 - 15:51 #4
function SendMail($From,$FromName,$To,$ToName,$Subject,$Text,$Html){
$OB="----=_OuterBoundary_000";
$IB="----=_InnerBoundery_001";
$Html=$Html?$Html:preg_replace("/\n/","{br}",$Text)
  or die("neither text nor html part present.");
$Text=$Text?$Text:"Sorry, but you need an html mailer to read this mail.";
$From or die("sender address missing");
$To or die("recipient address missing");
 
$headers ="MIME-Version: 1.0\r\n";
$headers.="From: ".$FromName." <".$From.">\n";
$headers.="To: ".$ToName." <".$To.">\n";
$headers.="Reply-To: ".$FromName." <".$From.">\n";
$headers.="X-Priority: 1\n";
$headers.="X-MSMail-Priority: High\n";
$headers.="X-Mailer: My PHP Mailer\n";
$headers.="Content-Type: multipart/mixed;\n\tboundary=\"".$OB."\"\n";

//Messages start with text/html alternatives in OB
$Msg ="This is a multi-part message in MIME format.\n";
$Msg.="\n--".$OB."\n";
$Msg.="Content-Type: multipart/alternative;\n\tboundary=\"".$IB."\"\n\n";

//plaintext section
$Msg.="\n--".$IB."\n";
$Msg.="Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n";
$Msg.="Content-Transfer-Encoding: quoted-printable\n\n";
// plaintext goes here
$Msg.=$Text."\n\n";

// html section
$Msg.="\n--".$IB."\n";
$Msg.="Content-Type: text/html;\n\tcharset=\"iso-8859-1\"\n";
$Msg.="Content-Transfer-Encoding: base64\n\n";
// html goes here
$Msg.=chunk_split(base64_encode($Html))."\n\n";

// end of IB
$Msg.="\n--".$IB."--\n";

// attachments
if($AttmFiles){
  foreach($AttmFiles as $AttmFile){
  $patharray = explode ("/", $AttmFile);
  $FileName=$patharray[count($patharray)-1];
  $Msg.= "\n--".$OB."\n";
  $Msg.="Content-Type: application/octetstream;\n\tname=\"".$FileName."\"\n";
  $Msg.="Content-Transfer-Encoding: base64\n";
  $Msg.="Content-Disposition: attachment;\n\tfilename=\"".$FileName."\"\n\n";
         
  $Msg.=$FileContent;
  $Msg.="\n\n";
  }
    $TEXT="Din klient understøtter ikke html";
    $besked="din html <br> tekst";
    SendMail(
  "info@mail.dk","afsenders navn",        //sender
  $email, $navn,  //recipient
  "Emne feltet",                              //subject
  $TEXT,$besked);  }

 

//message ends
$Msg.="\n--".$OB."--\n";
mail($To,$Subject,$Msg,$headers);   
//syslog(LOG_INFO,"Mail: Message sent to $ToName <$To>");
}
Avatar billede neess Nybegynder
02. juni 2005 - 15:52 #5
og kan kalde den på den her måde

    $TEXT="din klient understøtter ikke html";
    $besked="html besked";
    SendMail(
  "info@mail.dk","Afsenders navn",        //sender
  $email, $navn,  //recipient
  "Dit emne felt",                              //subject
  $TEXT,$besked);
Avatar billede mtrolle Nybegynder
06. juni 2005 - 15:42 #6
Hov - har ikke fået mail frra exp på dette spørgsmål...
Jeg kigger Jeres forslag igennem hurtigst muligt...
Avatar billede mtrolle Nybegynder
06. juni 2005 - 17:27 #7
neess> Det er satme et godt script du har lavet der :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester