Udsend HTML mails
egentlig ved jeg ikke helt om dette skulle være oprettet i HTML eller her i PHP, men jeg prøver her...Jeg har lavet mig en class kan udsende mails - både som html og som alm tekst.
Problemet er at jeg har fået en del tilbagemeldinger om at når folk modtager emailen som HTML, så vises HTMLkoden i outlook og ikke det design som er lavet med HTML'en. Men det mest pudsige er så at de folk normalt godt kan modtage HTMLmails fra andre - men ikke fra min class her. Jeg selv har ingen problemer overhovedet med at se mailen med "fortolket" HTML.
What dælen gør jeg forkert? ;-)
class Email{
var $title = null;
var $recipient = null;
var $senderName = null;
var $senderEmail = null;
var $content = null;
var $html = true;
var $body = "<body>";
var $doctype = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
var $style = null;
function set_title( $title ){
$this->title = $title;
}
function set_style( $style ){
$this->style = $style;
}
function set_recipient( $recipient ){
$this->recipient = $recipient;
}
function set_senderName( $senderName ){
$this->senderName = $senderName;
}
function set_senderEmail( $senderEmail ){
$this->senderEmail = $senderEmail;
}
function set_content( $content ){
$this->content = null;
if( $this->html ) $this->content .= $this->doctype . "\n";
if( $this->html ) $this->content .= "<html>\n";
if( $this->html ) $this->content .= "<head>\n";
if( $this->html ) $this->content .= "<title>".$this->title."</title>\n";
if( $this->html ) $this->content .= "<style>\n". nl2br( $this->style ) . "</style>\n";
if( $this->html ) $this->content .= "</head>\n";
if( $this->html ) $this->content .= $this->body;
$this->content .= $content;
if( $this->html ) $this->content .= "</body></html>";
}
function send_mail(){
//Sets headers for the email
$headers .= "From: " . $this->senderName . "<" . $this->senderEmail . ">\r\n";
$headers .= "Reply-To: " . $this->senderName . "<" . $this->senderEmail . ">\r\n";
$headers .= "X-Mailer: PHP4\r\n"; //mailer
$headers .= "X-Priority: 3\r\n"; //1 UrgentMessage, 3 Normal
$headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
$headers .= "MIME-Version: 1.0\r\n";
if( mail( $this->recipient, $this->title, $this->content, $headers ) ) return true;
}
}