webForumDet fria alternativet
Logga in / Bli medlem

Html i email

PHP

2 svar · 271 visningar · startad av Jester

Medlem sedan sep. 200188 inlägg
Trådstart#1

Ave

Jag försöker att konstrurera ett epost skript som skickar formulärdatat som mail formaterat med html med hjälp av MIME.
Problemet är när jag tar emot det så ser det helt keff ut, inte alls som jag tänkt det.
Varför blir det så?
Kan mitt webhotell konfigurerat sin mailfunktion att köra över mina htmlkommandon och lägga dit sina?

Här är koden iaf

<?
$fnamn="Kalle";
$enamn="Anka";
$epost="kalle@anka.com";
$subject="Detta är ett mailtest";
$mess="Detta är\nett test på\t\tmailfunktionen som jag byggt";
//Emailkonfiguration i MIME-format
function emailconf($mess,$subject,$fnamn,$enamn,$epost){
	$mailbound=md5(uniqid(time()));
	
	$mail="pontus@gavatum.com";
	
	//Sätter upp mailhuvudet i MIME format	
	$mailhead = "Reply-to: \"".$fnamn." ".$enamn."\" <".$epost.">\r\n";
	$mailhead .="From: \"Ett mail från hemsidan\" <noreply>\r\n";
	$mailhead .= "MIME-Version: 1.0\r\n";
	$mailhead .= "Content-type: multipart/mixed;boundary=\"".$mailbound."\"";
	$mailhead .= "\r\n\r\n";
	$mailhead .= "This is a multi-part message in MIME format.";
	$mailhead .= "\r\n\r\n";
	//Här börjar html versionen av mailet
	$mess = htmlentities($mess);
	$mess = nl2br($mess);
	$sentdate = date("Y-m-d H:i:s");
	$mailbody .= "--$mailbound\n";
	$mailbody .= "Content-type: text/html; charset=iso-8859-1\r\n";
	$mailbody .= "Content-Transfer-Encoding: quoted-printable\r\n\r\n";
	$mailbody .="<html>\n";
	$mailbody .="<head>\n";
	$mailbody .="<title>".$subject."</title>\n";
	$mailbody .="<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n";
	$mailbody .="<style type=\"text/css\">\n";
	$mailbody .=".body {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; color: #000000; background-color: #FFFFFF}\n";
	$mailbody .=".rubrik {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 18pt; color: #000000; font-weight: bold}\n";
	$mailbody .=".small {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; color: #000000}\n";
	$mailbody .=".field {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12pt; font-weight: bold; color: #000000}\n";
	$mailbody .=".data {  font-family: Arial, Helvetica, sans-serif; font-size: 12pt; font-weight: bold; color: #000000}\n";
	$mailbody .="</style>\n";
	$mailbody .="</head>\n";
	$mailbody .="<body class=\"body\" bgcolor=\"#FFFFFF\" leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\" text=\"#FFFFFF\">\n";
	$mailbody .="<div align=\"center\">\n";
	$mailbody .="<table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
	$mailbody .="<tr align=\"center\" valign=\"middle\">\n";
	$mailbody .="<td class=\"rubrik\" colspan=\"3\"> Ett mail fr&aring;n hemsidan </td>\n";
	$mailbody .="</tr>\n";
	$mailbody .="<tr align=\"center\" valign=\"middle\">\n";
	$mailbody .="<td height=\"25\" colspan=\"3\">\n";
	$mailbody .="<div align=\"center\" class=\"small\">Avs&auml;ndes fr&aring;n hemsidan ".$sentdate."</div>\n";
	$mailbody .="</td></tr>\n";
	$mailbody .="<tr align=\"center\" valign=\"middle\">\n";
	$mailbody .="<td height=\"15\" colspan=\"3\">&nbsp;</td>\n";
	$mailbody .="</tr>\n";
	//HÄr börjar meddelandet
	$mailbody .="<tr align=\"center\" valign=\"middle\">\n";
	$mailbody .="<td height=\"15\" width=\"150\" align=\"right\" valign=\"middle\" class=\"field\">Namn:</td>\n";
	$mailbody .="<td height=\"15\" width=\"5\" align=\"right\" valign=\"middle\" class=\"field\">&nbsp; </td>\n";
	$mailbody .="<td height=\15\" width=\"317\" align=\"left\" valign=\"middle\" class=\"data\">".$fnamn." ".$enamn."</td>\n";
	$mailbody .="</tr>\n";
	$mailbody .="<tr align=\"center\" valign=\"middle\">\n";
	$mailbody .="<td height=\"15\" width=\"150\" align=\"right\" valign=\"middle\" class=\"field\">E-post:</td>\n";
	$mailbody .="<td height=\"15\" width=\"5\" align=\"right\" valign=\"middle\" class=\"field\">&nbsp; </td>\n";
	$mailbody .="<td height=\15\" width=\"317\" align=\"left\" valign=\"middle\" class=\"data\">".$epost."</td>\n";
	$mailbody .="</tr>\n";
	$mailbody .="<tr align=\"center\" valign=\"middle\">\n";
	$mailbody .="<td height=\"15\" width=\"150\" align=\"right\" valign=\"middle\" class=\"field\">Ärende:</td>\n";
	$mailbody .="<td height=\"15\" width=\"5\" align=\"right\" valign=\"middle\" class=\"field\">&nbsp; </td>\n";
	$mailbody .="<td height=\15\" width=\"317\" align=\"left\" valign=\"middle\" class=\"data\">".$subject."</td>\n";
	$mailbody .="</tr>\n";
	$mailbody .="<tr align=\"center\" valign=\"middle\">\n";
	$mailbody .="<td height=\"15\" width=\"150\" align=\"right\" valign=\"top\" class=\"field\">Meddelande:</td>\n";
	$mailbody .="<td height=\"15\" width=\"5\" align=\"right\" valign=\"middle\" class=\"field\">&nbsp; </td>\n";
	$mailbody .="<td height=\15\" width=\"317\" align=\"left\" valign=\"top\" class=\"data\">".$mess."</td>\n";
	$mailbody .="</tr>\n";
	//Sista raden
	$mailbody .="<tr align=\"center\" valign=\"middle\">\n";
	$mailbody .="<td height=\"15\" width=\"150\" align=\"right\" valign=\"middle\" class=\"field\">&nbsp;</td>n";
	$mailbody .="<td height=\"15\" width=\"5\" align=\"right\" valign=\"middle\" class=\"field\">&nbsp;</td>n";
             $mailbody .="<td height=\"15\" width=\"317\" align=\"right\" valign=\"middle\" class=\"field\">&nbsp;</td>n";
           	$mailbody .="</tr></table></div></body></html>\n";
	$mailbody .= "\r\n\r\n";
	$mailbody .="--$mailbound--";

	return mail($mail,$subject,$mailbody,$mailhead);
}

if(emailconf($mess,$subject,$fnamn,$enamn,$epost)) echo "Det gick ju bra!!";
else echo "Detta gick ju inte";
?>

Som ni märker är det bara en testsidan men problemet rör ju inte formulärdatat.

Tack på förhand

Medlem sedan mars 20007 896 inlägg
#2

Om du tar bort ditt boundary, och sätter content-type:en till text/html, fungerar det bättre då?

Medlem sedan sep. 200188 inlägg
#3

Nej det fungerade inte men när jag ändrade
"Content Transfer Encoding" från quoted/printable till 8bit så verkar det funka så när som 3 st n på lika många rader innan innehållet visas.....mkt mystiskt..

270 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)