Avatar billede mshenriksen Novice
11. december 2007 - 20:53 Der er 4 kommentarer og
1 løsning

Hvordan laver man 'autonavn' i nyhedsmail med PHP?

Med en del hjælp fra dette forum har jeg nu fået stykket et script sammen til en mailform jeg kan udfylde på admin.delen på min hjemmeside og sende.
Nu har jeg fået den geniale ide at jeg gerne vil have hver enkelt modtagers navn til at stå i starten de respektive mails.
Navnet ligger i samme tabel (nemlig 'nyhedsbrev') som mail-adressen, men under 'navn'.
Er der nogen som kan vise, hvordan man gør det bedst muligt?


Scriptet til nyhedsmailen:

<form action="ny_mail.php" method="post">
       
        Send nyhedsbrev
 
<textarea name="indhold" cols="40" rows="10">

Kære <navn på modtager>!
.....osv

</textarea>
<input type='submit' value='Send' name="submit" />

</form>


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


$resultat = mysql_query('select * from nyhedsbrev');
while ($raekke = mysql_fetch_array($resultat)) {

if(!isset($taeller)) {
$taeller = 1;
$adresser = $raekke['email'];
}
else { $taeller = $taeller+1;
$adresser .= "," . $raekke['email'];
}
}

$tekst = $_POST['indhold'];
$tekstlinje = nl2br(stripslashes($tekst));
$subject = "Nyhedsbrev fra Henriksen";
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From: Henriksen <email@adresse.dk>\n";
$headers .= "Bcc: $adresser";
mail("email@adresse.dk", $subject, $tekstlinje, $headers);


echo "Mail sendt!!";
}
?>
Avatar billede jakobdo Ekspert
11. december 2007 - 21:24 #1
Sådan f.eks.:

<form action="ny_mail.php" method="post">   
Send nyhedsbrev
<textarea name="indhold" cols="40" rows="10">
.....osv
</textarea>
<input type='submit' value='Send' name="submit" />
</form>

<?php
if(isset($_POST['submit'])) {
    $subject = "Nyhedsbrev fra Henriksen";
    $headers = "Content-Type: text/html; charset=iso-8859-1\n";
    $headers .= "From: Henriksen <email@adresse.dk>\n";
    $headers .= "Bcc: $adresser";
    $resultat = mysql_query('select * from nyhedsbrev');
    while ($raekke = mysql_fetch_array($resultat)) {
        $tekst = 'Kære : ' . $raekke['navn'] . "\n";
        $tekst .= $_POST['indhold'];
        $tekstlinje = nl2br(stripslashes($tekst));
        mail($raekke['email'];, $subject, $tekstlinje, $headers);
    }
    echo 'Emails afsendt';
}
?>
Avatar billede mshenriksen Novice
13. december 2007 - 18:41 #2
Det virker sån' lige knap.
Den vil ikke rigtig accepterer denne linje:
mail($raekke['email'];, $subject, $tekstlinje, $headers);
har så forsøgt lidt af hvert bl.a. at fjerne ';', men uden held. Det virker først nå jeg sætter en mail-adr. i "".

Har forsøgt at klippe lidt sammen på kryds og tværs, men kan ikke få den til at opfører sig helt som jeg vil. Så sender den flere mails til en adresse, så uden navn og så med samme navn til alle.

Er det rigtigt at dette skal være udeladt:

if(!isset($taeller)) {
$taeller = 1;
$adresser = $raekke['email'];
}
else { $taeller = $taeller+1;
$adresser .= "," . $raekke['email'];

?
Avatar billede mshenriksen Novice
15. december 2007 - 12:21 #3
Så fik jeg det til at virke, løsningen blev:

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

$subject = "Nyhedsbrev fra Henriksen";
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From: Henriksen <email@adresse.dk>\n";
$headers .= "Bcc: $adresser";

$resultat = mysql_query('select * from nyhedsbrev');
while ($row = mysql_fetch_array($resultat)) {

if(!isset($taeller)) {
$taeller = 1;
$adresser = $row['email'];
}
else { $taeller = $taeller+1;
$adresser .= "," . $row['email'];
}
$tekst = 'Hej ' . $row['navn'] . "!". "\n";
$tekst .= $_POST['indhold'];
$tekstlinje = nl2br(stripslashes($tekst));

mail($row['email'], $subject, $tekstlinje, $headers);
}

echo "Mail sendt!!";
}
?>

Jeg ændrede $reakke til $row, men det var nok næppe det der gjorde udslaget. Det handler godt nok meget om den rigtige rækkefølge og hvad der står inden og uden for "tuborg'n".

>>jakobdo<<
du må godt smide et svar, jeg kunne ikke have gjort det uden din kommentar. Tak for hjælpen!
Avatar billede jakobdo Ekspert
22. december 2007 - 20:17 #4
Svar!
Avatar billede jakobdo Ekspert
23. december 2007 - 11:56 #5
Takker for point.
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

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