29. december 2005 - 15:59Der er
7 kommentarer og 1 løsning
html mail udsendelse
Jeg er ved at lave et bette script som skal bruges til at udsende html mails. Jeg har lavet en form med en felt hvor teksten der skal sendes smides ind.
Det virker sådan set fint nok og den sender mailen afsted som den skal.
Problemet kommer når man åbner mailen den ser ikke lige helt ud som den skal. Har følgende problemer...
CSS bliver ikke vist selvom de er defineret direkte i filen..
Det er som om det hele først begynder 20 linier nede.. det som står helt i top hvis jeg bare åbner html'en som en almindelig side kommer først et stykke nede og øverst er der bare hvidt...
Ok jeg har nu taget den her funktion fra tråden... og vil meget gerne vi hvordan jeg lige for smidt mine egene variabler ind i den... nogen der kan hjælpe... er klar til at smide flere point efter det hvis det er.
_______________________
<? 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");
//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";
// 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";
Hele koden ser nu således ud håber der er nogen som kan give mig en hånd... når jeg tester bliver siden bare hvid for slet ikke vist min form eller noget som helst...
<? if($_POST[send]){ include ("mysql_connect.php"); mysql_connect($host,$user,$pass); mysql_select_db($db); $mail = mysql_query ("SELECT * FROM mail_systen_test WHERE m_id >= '" . $_POST['fraid'] . "' AND m_id <= '" . $_POST['tilid'] . "'"); while($row = mysql_fetch_array($mail)) { $udsendes = $_POST['udsendes']; $udsendes = nl2br($udsendes); $adresse = $row['m_email']; $navne = $row['m_navn']; $id = $row['m_id']; //mail("$adresse","Nyhedsbrev fra Stof og Stil","$udsendes","From: Stof og Stil <maillist@eurostofogstil.dk>\nContent-type: text/html"); } }
$From = "noreply@eurostofogstil.dk"; $Fromname = "Stof og Stil"; $Subject = "Stof og Stil nyhedsbrev"; $To = "$adresse"; $ToName ="$navn"; $Text "Du skal have html mail laeser for at se denne mail"; $Html = "$udsendes";
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");
//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";
// 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";
Hvis jeg ikke // den linie ud med dollar text så går siden bare i hvid...
Når den er fjernet bliver siden vist jeg kan udfylde form og trykker send også går siden i hvid og der bliver ikke sendt nogen mails :(
Håber der er nogen som kan hjælpe....
Koden som den er nu: _______________________________________
<? if($_POST[send]){ include ("mysql_connect.php"); mysql_connect($host,$user,$pass); mysql_select_db($db); $mail = mysql_query ("SELECT * FROM mail_systen_test WHERE m_id >= '" . $_POST['fraid'] . "' AND m_id <= '" . $_POST['tilid'] . "'"); while($row = mysql_fetch_array($mail)) { $udsendes = $_POST['udsendes']; $udsendes = nl2br($udsendes); $adresse = $row['m_email']; $navne = $row['m_navn']; $id = $row['m_id']; //mail("$adresse","Nyhedsbrev fra Stof og Stil","$udsendes","From: Stof og Stil <maillist@eurostofogstil.dk>\nContent-type: text/html");
$From = "noreply@eurostofogstil.dk"; $Fromname = "Stof og Stil"; $Subject = "Stof og Stil nyhedsbrev"; $To = "$adresse"; $ToName ="$navn"; //$Text "Du skal have html mail laeser for at se denne mail"; $Html = "$udsendes";
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");
//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";
// 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";
Jeg kan se at der ikke er noget sted i dit script at du rent faktisk kalder SendMail() funktionen..
Umiddelbart tror jeg ikke at der er mere i det end følgende:
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");
//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";
// 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";
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.