Ingen som har något förslag, var det en svår eller dum fråga? Utifrån mitt amatörperspektiv har jag mycket svårt att begripa hur skriptet kan generera header-information som accepteras som HTML i vissa mejlklienter men inte i andra? Någon som känner igen problematiken och kan ge en ledtråd till en möjlig lösning? Vore extremt tacksam för någon insiktsfull synpunkt.
Hej! Först skall jag säga att jag inte alls kan PHP, men jag har hittat ett enkelt skript på nätet som dock inte verkar fungera till 100%, och jag vore tacksam om någon kunnig person skulle kunna hjälpa till att identifiera felet. Syftet är att skapa en enkel (tillfällig) sida för hälsningskort, som skickas iväg som HTML-mejl. Så här ser det ut i anonymiserat skick, det är ursprungligen hämtat från https://www.shopkanji.com men verkar inte längre finnas uppe i originalform.
<?php
$tname = stripslashes($_REQUEST["tname"]) ;
$temail = $_REQUEST["temail"] ;
$yname = stripslashes($_REQUEST["yname"]) ;
$yemail = $_REQUEST["yemail"] ;
$greeting = $_REQUEST["greeting"] ;
$message = nl2br($_REQUEST["message"]) ;
$close = $_REQUEST["close"] ;
$image = $_REQUEST["image"] ;
$background = $_REQUEST["background"] ;
$fonts = $_REQUEST["fonts"] ;
$fontc = $_REQUEST["fontc"] ;
$body = '<html><body bgcolor="';
$body .= "$background";
$body .= '"><br><table width="500" border="0" align="center" cellpadding="10" cellspacing="0"><tr><td width="320" align="left" valign="top"><a href="http://[source]"><img src="';
$body .= "$image";
$body .= '" width="305" height="420" border="0"></a></td><td align="left" valign="top"><p><font face="';
$body .= "$fonts";
$body .= '" color="';
$body .= "$fontc";
$body .= '">';
$body .= stripslashes("$greeting");
$body .= ' ';
$body .= stripslashes("$tname");
$body .= ',</font></p><p><font face="';
$body .= "$fonts";
$body .= '" color="';
$body .= "$fontc";
$body .= '">';
$body .= stripslashes("$message");
$body .= '</font></p><p><font face="';
$body .= "$fonts";
$body .= '" color="';
$body .= "$fontc";
$body .= '">';
$body .= stripslashes("$close");
$body .= ',</font></p><p><font face="';
$body .= "$fonts";
$body .= '" color="';
$body .= "$fontc";
$body .= '">';
$body .= stripslashes("$yname");
$body .= '</font></p></td></tr></table><br><hr width="500" noshade><div align="center"><a href="http://[source]"><font face="';
$body .= "$fonts";
$body .= '" color="';
$body .= "$fontc";
$body .= '">Send ';
$body .= "$yname";
$body .= ' or another friend an E-card.</font></a><br><hr width="500" noshade><br><table width="500" border="0" cellspacing="0" cellpadding="0"><tr><td align="center"><p><a href="http://"><font face="';
$body .= "$fonts";
$body .= '" color="';
$body .= "$fontc";
$body .= '">xxx</font></a></p></td></tr></table></div></body></html>';
$headers = "MIME-Version: 1.1\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: $yname <$yemail>\r\n";
$headers .= "Disposition-Notification-To: $yname <$yemail>\r\n";
$copy = "MIME-Version: 1.0\r\n";
$copy .= "Content-type: text/html; charset=iso-8859-1\r\n";
$copy .= "From: [X] <sender@address>\r\n";
mail( "$temail", "$yname has sent you an E-Card!", $body, $headers );
mail( "$yemail", "You have just sent $tname an E-Card!", $body, $copy );
header( "Location: http://[source]" );
?>
Problemet är nu att korten som skickas inte visas som HTML vid framkomsten utan som kod i vissa mejlprogram (Mail, Entourage) medan det verkar fungera som det ska i t.ex. Hotmail och Chello Webmail. Vet inte om det beror på något fel i själva PHP-kodningen - vad jag förstår är det "$headers .= "Content-type: text/html" som skall styra detta? - eller om felkällan kan ligga någon annanstans? Och vad kan man i så fall göra åt det? Tacksam för alla slags råd, tips och förslag.