Avatar billede danic Nybegynder
10. oktober 2003 - 12:44 Der er 10 kommentarer og
1 løsning

Nyhedsbrev i html format

Jeg har et website med en række brugere som registeret i en MySQL database, jeg har lavet en option således at man kan vælge ja eller nej til et nyhedsbrev. Jeg kender lidt til PHP’s mail funktion, men efterlyser den røde tråd til sådan et setup.

jeg ønsker noget i stil med de nyhedsbreve som f.eks. comon m.m. sender ud i html format.

Jeg forstiller mig at jeg vil ligge html koden til nyhedsbrevet i min mysql database, således at brevet først bliver sat op i en html form og alle data herefter gemmes i mysql databasen.

[HTML header]

[tekst overskrift]

[nyhedsstof]

[HTML footer]

Når jeg er færdig med nyhedsbrevet skal de kunne sendes afsend ud fra de gemte oplysninger i mysql.


Sender man grafik med i mailen eller linker man til sin hjemmeside?
Hvordan skal formatet være?
Findes der en html editor til formålet?
Findes er nogle gode guides?
Eller er der nogle den har kodet noget som evt. kan genbruges?

(Det gives optil 200 points for hjælpen)
Avatar billede tipsen Nybegynder
10. oktober 2003 - 13:12 #1
- Du bør embedde grafikken i din mail - nogle mailprogrammer lukker af for ting der skal hentes fra web'en da det kan sladre om aktive emailadresser - "lazy html" også kaldet.
- Formatet skal være sådan at det er korrekt html-kode - derudover bør der vedlægges en plain-text udgave for dem som ikke ønsker html-mails.
- Du bør næsten kunne bruge en vilk. html-editor - måske bortset fra Frontpage...(den holdning er farvet af ældre frontpage versioner - har heldigvis ikke erfaring med nyere udgaver)
- Der findes nogle gode klasser på PEAR til at sende Mime mails - der er jo ingen grund til at starte helt fra bunden :-)

Mvh

tipsen
Avatar billede danic Nybegynder
10. oktober 2003 - 13:27 #2
Hvordan embedder man grafikken med php's mail funktion?

PEAR?
Avatar billede danic Nybegynder
10. oktober 2003 - 13:39 #3
Jeg fant dette eksempel:

$subject = nyhedsbrev;
$message .= "<html></html>";
$headers = "From: 'fra' 'email@email.dk'\n";
$headers .= "X-Sender: 'email@email.dk'\n";
$headers .= "Return-Path: 'email@email.dk'\n";
// Email der skal sendes til
mail("til@email.dk",$subject, $message, $headers);

Jeg går du fra at jeg kopier hele indholdet fra html editoren ind i $message men jeg er stadig ikke sikker på hvordan jeg får diverse .gif eller .jpg billeder med over.
Avatar billede tipsen Nybegynder
10. oktober 2003 - 14:55 #4
Du kan godt skrotte mail() funktionen - ellers kommer du virkelig på arbejde...

Alle binære data skal base64-encodes og du skal konstruere en mime-mail efter mime standarden!

Det er en relativt kompliceret opgave at løse helt korrekt - jeg vil foreslå dig at kigge på: http://pear.php.net/manual/en/package.mail.mail-mime.php hvor du finder en færdig pear-klasse der kan hjælpe med at løse dine problemer.
Avatar billede tipsen Nybegynder
10. oktober 2003 - 14:55 #5
NB: Dit eksempel vil ikke generere en korrekt html-mail selvom $message skulle indeholde korrekt html-kode.
Avatar billede danic Nybegynder
10. oktober 2003 - 17:16 #6
Er pear-klassenoget som ligger i PHP eller linux eller skal det installers efterfølgende? jeg ved ikke om det er noget mit webhotel understøtter?
Avatar billede smooth Nybegynder
11. oktober 2003 - 01:14 #7
Prøv at se om du ikke kan inde noget her :
http://www.websteps.dk/vis_artikel.php?id=20

Med venlig hilsen
Smooth
Avatar billede danic Nybegynder
11. oktober 2003 - 11:14 #8
tipsen> nu har jeg en mail funktion den er afprøvet og virker, jeg mangler bare lige det med grafikken har set lidt på addHTMLImage men hvordan virker det?


function mail_html($to , $subject , $message , $reply , $from , $heading=""){
$limite = "_parties_".md5 (uniqid (rand()));
 
  $mail_mime = "Date: ".date("l j F Y, G:i")."\n";
  $mail_mime .= "MIME-Version: 1.0\n";
  $mail_mime .= "Content-Type: multipart/alternative;\n";
  $mail_mime .= " boundary=\"----=$limite\"\n\n";
 
  $text_simple = "This is a multi-part message in MIME format.\n";
  $text_simple .= "------=$limite\n";
  $text_simple .= "Content-Type: text/plain; charset=\"US-ASCII\"\n";
  $text_simple .= "Content-Transfer-Encoding: 7bit\n\n";
  $text_simple .= strip_tags(eregi_replace("<br>", "\n", $message));
  $text_simple .= "\n\n";
 
//message in html
  $text_html = "------=$limite\n";
  $text_html .= "Content-Type: text/html; charset=\"US-ASCII\"\n";
  $text_html .= "Content-Transfer-Encoding: 7bit\n\n";
  $text_html .= $message;
  $text_html .= "\n\n\n------=$limite\n";
 
  return mail($to, $subject, $text_simple.$text_html,
$mail_mime."Reply-to:$reply\nFrom:$from\n".$heading);
}

kaldet:
<?php
require("funktioner/mysql_funktioner.php");

$message ="<html><body><b>HTML mail test</b><small>test</small></body></html>";
mail_html ("navn@email.dk", "test af htmlmail", "$message", "info@mail.dk", "info@mail.dk", "heading test");
?>

Jeg fant også dette eksempel på phpfreaks.com

<?php
include('Mail.php');
include('Mail/mime.php');

$text = 'Text version of email';
$html = '<html><body>HTML version of email</body></html>';
$file = '/home/richard/example.php';
$crlf = "\r\n";
$hdrs = array(
              'From'    => 'you@yourdomain.com',
              'Subject' => 'Test mime message'
              );

$mime = new Mail_mime($crlf);

$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addAttachment($file, 'text/plain');

$body = $mime->get();
$hdrs = $mime->headers($hdrs);

$mail =& Mail::factory('mail');
$mail->send('postmaster@localhost', $hdrs, $body);
?>
men hvor kommer to filer som include's fra Mail.php og Mail/mime.php ?
Avatar billede tipsen Nybegynder
11. oktober 2003 - 18:24 #9
Din mail_html() er for bøvlet til at jeg gider bruge tid på den!

Den anden løsning er den jeg anbefaler og kræver blot at du downloader nogle filer fra PEAR - dem kan du selv smide på dit webhotel såvel som alle andre php-scripts - kræver ikke specielle rettigheder til noget som helst!
Avatar billede tipsen Nybegynder
26. oktober 2003 - 16:07 #10
danic: Du kan evt. lige smide den endelige løsning, så andre kan bruge spørgsmålet.
Avatar billede prentow Nybegynder
04. marts 2004 - 21:13 #11
jo tak står nemlig også og mangler det...
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