Avatar billede Christian_Bundgaard Nybegynder
21. august 2010 - 17:11 Der er 9 kommentarer og
1 løsning

Nyhedsbrev - HTML mail m.m.

Hej eksperter,

Jeg er ved at forsøge med et nyhedsbrev-scripts. Der er tilmeldingsside (afmeld kommer, når det virker), og en side, hvor jeg kan sende nyhedsbreve ud. Det virker fint med plain text. Men jeg vil gerne have, at der kan bruges HTML kode på siden, og muligvis noget med, at dem som ikke har en email klient, som understøtter HTML, får det vist som plain text. Har kigget lidt på nettet, men kan ikke få det til at virke.

Derudover har jeg et simpelt spørgsmål; skal e-mailsene MD5'es eller lign, og i så fald, hvordan bruger man så den hashede mail?

Derudover er andre råd omkring nyhedsbreve meget velkomne.

Tilmeld-siden:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Nyhedsbrev</title>    <!-- Husk ny titel  !-->
<link href="style.css" type="text/css" rel="stylesheet">
<link rel="shortcut icon" href="favicon.ico">
</head>
<body>

<?
if (isset($_POST['submit'])) {

$mail = $_POST["e-mail"];
$error = "";

$allerede_tilmeldt = "Din e-mail er allerede på listen.";
$success = "Tak, fordi du tilmeldte dig nyhedsbrevet.";

function check_email_address($email) {
* Koden fjernet *
}

if($mail == "" || check_email_address($mail) == false) {
$error .= "Du har ikke indtastet en gyldig e-mail.";
}

mysql_connect("*", "*", "*");
mysql_select_db("*");

if($error == "") {
    $select_mail = mysql_query("SELECT mail FROM nyhedsbrev WHERE mail='$mail'");
        if(mysql_num_rows($select_mail) == 1) {
            echo $allerede_tilmeldt;
        } else {
            mysql_query("INSERT INTO nyhedsbrev(mail) VALUES ('$mail')");
            echo $success;
        }
    }               
else {
echo $error;
}
}
?>

<form action="<? $PHP_SELF; ?>" method="post">
E-mail: <br/>
<input type="text" name="e-mail" id="input"> <br/>
<input name="submit" type="submit" value="Tilmeld">
</form>

</body>
</html>

------------------------------------------------------

og "send-nyhedsbrev":


------------------------------------------------------

<html>
<head>
<link href="style.css" type="text/css" rel="stylesheet">
</head>
<body>

<h1>Send nyhedsbrev</h1>

<?
if(isset($_POST["submit"])) {

$emne = $_POST["emne"];
$besked = $_POST["besked"];
$body = "
<html>
<body>
<img src='http://devdesign.dk/learn2code/img/newsletter-logo.png'> <br> <br>
<p style='font-family: verdana; font-size: 13px;'>" . $besked . "</p>
<br/> <br/>
</body>
</html>";
$headers = "From: newsletter@devdesign.dk\r\nContent-type: text/html; charset=\"iso-8859-1\"";
$error = "";

if($emne == "") {
    $error .= "Der er ikke indtastet et emne. <br>";
}
if($besked == "") {
    $error .= "Der er ikke indtastet en besked. <br>";
}   

mysql_connect("*", "*", "*");
mysql_select_db("*");

$count_mails = 0;

if($error == "") {
    $get_mails = mysql_query("SELECT * FROM nyhedsbrev");

        while($mail_array = mysql_fetch_array($get_mails)) {
            $mails = ($mail_array["mail"]);
            mail($mails, $emne, $besked, $headers);
            $count_mails++;
    }
    echo "<div id=\"success\">Nyhedsbrevet er sendt til <b>" . $count_mails . " mails.</b></div>";
}
else {
    echo "<div id=\"error\">" . $error . "</div>";
}   
}


?>

<form action="<? $PHP_SELF; ?>" method="post">
Emne: <br/>
<input type="text" name="emne" id="input"> <br/>
Besked: <br/>
<textarea type="text" name="besked" id="textarea">
<input name="submit" type="submit" value="Send nyhedsbrev">
</form>

</body>
</html>

------------------------------------------------------

Jeg er rimelig ny til PHP, så hvis I har andre rettelser, så sig dem endelig - og forklar gerne. Der er 100 point på spil.

Mvh.
Christian
Avatar billede majbom Novice
21. august 2010 - 19:37 #1
prøv at tag et kig på phpmailer: http://phpmailer.worxware.com/
Avatar billede Christian_Bundgaard Nybegynder
21. august 2010 - 22:57 #2
Tak, men sådan noget der fatter jeg ikke en brik af - og jeg foretrækker selv at lære det, eller hvad man skal sige.
Avatar billede majbom Novice
21. august 2010 - 23:15 #3
ja okay, nu vil jeg også gerne lave tingene selv, men phpmailer er stadig flittig brugt hér!

nogle ting skal man bare ikke bruge tid på at lave selv :)

hvad er det du ikke fatter? der er glimragende eksempler på siden...
Avatar billede Christian_Bundgaard Nybegynder
22. august 2010 - 13:44 #4
Whatever, PHP mailer er nok fint, men jeg er tæt på at have det rigtigt, og jeg ved det kan lade sig gøre. Mit spørgsmål er bare, for der må være nogle der selv har prøvet at lave det, hvordan man får det gjort muligt, at der bliver sendt en HTMl udgave og en plain text udgave.
Avatar billede Christian_Bundgaard Nybegynder
22. august 2010 - 16:21 #5
Jeg har fået det til at virke med HTML koden. Skulle bare lave:

$body = <<<EOF
//HTML kode, som man vil skrive i et almindeligt dokument, og //variabler skrives uden "" eller ''.
EOF;

Alt virker perfekt nu, men jeg har 2 spørgsmål:

- Skal e-mails'ene MD5'es, og hvordan bruges de i så fald?
- Skal der laves noget, så hvis man ikke kan se HTML, så bliver der vist en anden udgave - eller er der ikke nødvendigt mere?
Avatar billede majbom Novice
22. august 2010 - 18:35 #6
super, men hvad mener du med at md5'e emailsne? er det selve adresserne? i så fald får du jo ikke meget ud af det, da du så ikke har emailen mere, men kun md5-hashen af den...
Avatar billede Christian_Bundgaard Nybegynder
22. august 2010 - 18:43 #7
Det er det jeg mener. Jeg ville bare lige vide det, for jeg vidste ikke, om der er nogle regler omkring det - tak :)
Avatar billede majbom Novice
22. august 2010 - 21:11 #8
ved ikke med regler, men du kan jo ikke gøre det modsatte af at md5'e - eller det kan du godt med en rainbowtable, men det er tænkt som en envejskryptering.
Avatar billede Christian_Bundgaard Nybegynder
22. august 2010 - 21:45 #9
Okay, tak. Jeg lader lige tråden stå åben, hvis der er nogle, som har svar på det andet spørgsmål.
Avatar billede Christian_Bundgaard Nybegynder
31. august 2010 - 17:10 #10
Lukker 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