function isemail($email) { // regx to test for valid e-mail adres $regex = '^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]{2,})+$'; if (eregi($regex, $email)) return true; else return false; }
function send() { // check if e-mail adresses are valid. if (!clsMail::isemail($this->to)) die('ERROR: Invalid To e-mail adres'); if (!clsMail::isemail($this->from)) die('ERROR: Invalid From e-mail adres'); if (!clsMail::isemail($this->cc) && !$this->cc=="") die('ERROR: Invalid CC e-mail adres'); if (!clsMail::isemail($this->bcc) && !$this->bcc=="") die('ERROR: Invalid BCC e-mail adres');
// To send HTML mail, you can set the Content-type header. html is the default $headers = "MIME-Version: 1.0\r\n"; if ($this->contentType=="html") $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; else $headers .= "Content-type: text/plain; charset=us-ascii\r\n";
// additional headers for From, Cc and Bcc $headers .= "From: ".$this->from."\r\n"; if (!$this->cc=="") $headers .= "Cc: ".$this->cc."\r\n"; if (!$this->bcc=="") $headers .= "Bcc: ".$this->bcc."\r\n";
// send the e-mail return mail($this->to, $this->subject, $this->message, $headers); }
ob_start(); include 'reply.php'; $msg = ob_get_contents(); ob_end_clean();
$mail2 = new clsMail(); $mail2->to="$email"; $mail2->from="fromEmail@someplace.com"; $mail2->subject="Tak for din tilmelding"; $mail2->message=$msg; $mail2->contentType="html";
$mail2->send();
?>
Problemmet er at den sender ikke som html. Min mail kommer til at starte med: Content-type: text/html; charset=iso-8859-1 From: someEm@il.com
Dvs. at den visser ikke html og ikke hvem det er fra.
Afhænging af mail server softwaren kan det være at du skal fjerne \r så der kun er \n dvs.
// To send HTML mail, you can set the Content-type header. html is the default $headers = "MIME-Version: 1.0\r\n"; if ($this->contentType=="html") $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; else $headers .= "Content-type: text/plain; charset=us-ascii\r\n";
// additional headers for From, Cc and Bcc $headers .= "From: ".$this->from."\r\n"; if (!$this->cc=="") $headers .= "Cc: ".$this->cc."\r\n"; if (!$this->bcc=="") $headers .= "Bcc: ".$this->bcc."\r\n";
=
// To send HTML mail, you can set the Content-type header. html is the default $headers = "MIME-Version: 1.0\n"; if ($this->contentType=="html") $headers .= "Content-type: text/html; charset=iso-8859-1\n"; else $headers .= "Content-type: text/plain; charset=us-ascii\n";
// additional headers for From, Cc and Bcc $headers .= "From: ".$this->from."\n"; if (!$this->cc=="") $headers .= "Cc: ".$this->cc."\n"; if (!$this->bcc=="") $headers .= "Bcc: ".$this->bcc."\n";
Med venlig hilsen Mathias Hansen
Synes godt om
Slettet bruger
05. juli 2005 - 19:45#2
mathiash: Hvis det er nødvendigt, så er den mailserver i stykker. Standarden specificerer ganske klart at linier skal slutte med \r\n og ikke noget som helst andet. At nogen servere så vælger at acceptere post fra fejlbehæftede systemer, hvor der bruges \n i stedet for \r\n, kan man synes om hvad man vil, men serveren skal under alle omstændigheder godtage en korrekt udformet mail.
sandbox >> Stødte ind i dette problem pga min mail server software (qmail) som der simpelthen ikke kan li \r\n kun \n
Synes godt om
Slettet bruger
05. juli 2005 - 21:07#4
OK, så er det fordi den behandler mails sendt med en kommando på selve maskinen (som php gør) anderledes end mails modtaget via smtp, for der er qmail netop en af de servere, der ikke vil godtage \n alene.
der kan du se sandbox 10hi ej :) Er det ikke lidt for mange points til lidt \n'er skal jeg ikke oprette et spm så du kan få nogle af pointsne tilbage?
Synes godt om
Ny brugerNybegynder
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.