Avatar billede martinb82 Nybegynder
10. november 2004 - 11:23 Der er 4 kommentarer og
1 løsning

Tving mail script til at sende i HTML form

Hej Eksperter.

Hey mit første indlæg!

Mit spørgsmål lyder som følger:

Kan man i det nedenstående script, tvinge scriptet til at afsende mailen i HTML form? Den sender nemlig ud i tekst form uanset hvem jeg sender til, så jeg tror der er noget galt med valideringen af modtager mailen.

function SendMail($From,$FromName,$To,$ToName,$Subject,$Text,$Html,$AttmFiles)
{

/*
function SendMail($From, $FromName, $To, $ToName, $Subject, $Text, $Html, $AttmFiles)
$From      ... sender mail address like "my@address.com"
$FromName  ... sender name like "My Name"
$To        ... recipient mail address like "your@address.com"
$ToName    ... recipients name like "Your Name"
$Subject  ... subject of the mail like "This is my first testmail"
$Text      ... text version of the mail
$Html      ... html version of the mail
$AttmFiles ... array containing the filenames to attach like array("file1","file2")
*/

$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";
         
  //file goes here
  $fd=fopen ($AttmFile, "r");
  $FileContent=fread($fd,filesize($AttmFile));
  fclose ($fd);
  $FileContent=chunk_split(base64_encode($FileContent));
  $Msg.=$FileContent;
  $Msg.="\n\n";
  }
}

//message ends
$Msg.="\n--".$OB."--\n";
mail($To,$Subject,$Msg,$headers);   
//syslog(LOG_INFO,"Mail: Message sent to $ToName <$To>");
}
Avatar billede thorus Nybegynder
10. november 2004 - 22:07 #1
Avatar billede martinb82 Nybegynder
12. november 2004 - 08:50 #2
Hmm, det er sådan noget med classes og sådan noget... Er der ikke nogen der har et lidt simplere et?
Avatar billede martinb82 Nybegynder
15. november 2004 - 12:31 #3
Jeg har fundet ud af det.
Avatar billede martinb82 Nybegynder
15. november 2004 - 12:32 #4
Thorus post et svar, så får du sgu lige pointene.
Avatar billede martinb82 Nybegynder
19. maj 2005 - 09:21 #5
Ikke nogen svar, så jeg tager dem tilbage...
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