Avatar billede djthomas Nybegynder
17. marts 2007 - 11:04 Der er 1 kommentar og
1 løsning

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;
   
    }




}
Avatar billede moreless Nybegynder
17. marts 2007 - 16:07 #1
tag evt et kig på en eksiterende mailer class, http://phpmailer.sourceforge.net/
Avatar billede djthomas Nybegynder
23. april 2007 - 15:51 #2
Det er mig stadig en gåde hvorfor det ikke virker, men nu lukker jeg her...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester