Avatar billede walden Nybegynder
04. januar 2004 - 14:50 Der er 6 kommentarer og
1 løsning

mthl-mail, der tager højde for klienter der ikke kan/vil html

Er det muligt at programmere en html-mail via php, der når det læses som en almindelig tekst-mail erstatter fx et billede med følgende tekst: "Too bad you can't read HTML-mail. Here would have been a nice picture for you"?
Avatar billede ahv Nybegynder
04. januar 2004 - 14:52 #1
Så vidt jeg husker er der ikke en sådan mulighed, men du kan jo når folk tilmelder sig dit nyhedsbrev, hvilket jeg antager det er, så kan du jo få dem til at sætte et hak i html mail eller normal mail.
Avatar billede ahv Nybegynder
04. januar 2004 - 14:55 #2
Der er meget nyttig information hvis du ser nogen af følgende spørgsmål ignenem:

http://www.eksperten.dk/kat/2/?searchtype=txt&words=html+mail+text+mail&method=and&sort=score&catid=2
Avatar billede Slettet bruger
04. januar 2004 - 14:56 #3
Hvis du sender i MIME af typen multipart/alternative, kan du lave både en tekst og en HTML version af din mail (2 mails i samme mail). Klienten (eksempelvis Outlook) vælger så selv den version af mailen, den kan vise. Outlook hvis html ikke er slået fra vil vælge at vise HTML versionen, mens en anden type klient, der ikke understøtter HTML mails, vil vise tekst versionen.

<?
error_reporting(E_ALL);

function send_multipart_email($to, $from, $reply_to, $subject) {   
    /*
    Sender en multipart/alternative besked med
    en text/plain del og en text/html del.
   
    mail_textplain.inc: Fil der skal indeholde text/plain delen.
    mail_texthtml.inc: Fil der skal indeholde text/html delen.
    */   
    if (!$fp = @fopen("mail_textplain.inc", "r"))
        return FALSE;
    $text_plain = fread($fp, filesize("mail_textplain.inc"));
    if (!$fp = @fopen("mail_texthtml.inc", "r"))
        return FALSE;
    $text_html = fread($fp, filesize("mail_texthtml.inc"));
    fclose($fp);
   
    $headers  = "From: ".$from."\r\n";
    $headers .= "Reply-To: ".$reply_to."\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: Multipart/Alternative; boundary=\"part boundary\"";
   
    $body  = "--part boundary\r\n";
    $body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
    $body .= "\r\n".$text_plain."\r\n";
    $body .= "\r\n--part boundary\r\n";
    $body .= "Content-Type: text/html\r\n";
    $body .= "\r\n".$text_html."\r\n";
    $body .= "\r\n--part boundary--\r\n";
   
    return (boolean) mail($to, $subject, $body, $headers);
}

echo send_multipart_email("modtager@afmail.dk", "NavnAfsender <afsender@mail.dk>", "svar@til.dk", "Multipart/alternative MIME test") ? "Mail sendt" : "Mail kunne ikke sendes";
?>
Avatar billede Slettet bruger
04. januar 2004 - 14:57 #4
Prøv ovenstående eksempel, som jeg havde liggende.
Eksemplet benytter 2 filer, der er indholdet af dine mails:

mail_textplain.inc: Fil der skal indeholde text/plain delen.
mail_texthtml.inc: Fil der skal indeholde text/html delen.

Disse filer skal ligge i samme bibliotek som scriptet.
Avatar billede ahv Nybegynder
04. januar 2004 - 15:02 #5
waldan -> Næste gang så søg på eksperten først, det script som mercur8 lige har postet kan findes på den liste over spørgsmål jeg postede til dig.

http://www.eksperten.dk/spm/380300
Avatar billede Slettet bruger
04. januar 2004 - 15:04 #6
Oh yes, det spørgsmål kunne jeg jo også bare have taget mig sammen og fundet frem igen.
Avatar billede walden Nybegynder
04. januar 2004 - 15:05 #7
Tak for - det ser fornuftigt ud ...
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