Avatar billede mjl Nybegynder
27. november 2006 - 16:37 Der er 17 kommentarer og
1 løsning

Sende mail til flere brugere

Hej der ...

I en MySQL DB har jeg ca 30 brugere, med email adresser - nu vil jeg gerne ha' en måde hvorpå jeg kan udvælge nogle af dem, og sende en mail til de valgte ...

Jeg tænkte på en oplistning, med checkbox'e, så man kunne "hakke" dem, ud af de 30, der skal modtage mailen o.s.v.

Men hvordan laver jeg det ?

hilsen Conrad
Avatar billede mjl Nybegynder
27. november 2006 - 16:52 #1
:) Nogen der kan hjælpe !?
Avatar billede mjl Nybegynder
27. november 2006 - 17:09 #2
:(
Avatar billede michaeltryl Seniormester
27. november 2006 - 17:32 #3
det burde være muligt har du noget kode i forvejen, ellers.
start med at lave et script som lister alle brugerne op.

skal mailen hentes fra en database eller fra en formular?
Avatar billede michaeltryl Seniormester
27. november 2006 - 17:34 #4
derud over skal du lavet et ekstra felt i dabasen med brugerne som du kalder f.eks "sendt" og det skal have standard værdi "nej"
Avatar billede mjl Nybegynder
27. november 2006 - 17:38 #5
Jeg bruger en form, hvor emne og besked skrives - så skal jeg bare kunne vælge nogle enkelte fra DB'en, der skal ha' beskeden ...
Avatar billede michaeltryl Seniormester
27. november 2006 - 17:52 #6
helt fint har du den forspørgsel som henter brugerne fra databasen
Avatar billede mjl Nybegynder
27. november 2006 - 17:58 #7
$hent_modtagerne = mysql_query("SELECT * FROM table ORDER BY navn");
while ($hent_modtagerne_print = mysql_fetch_array($hent_modtagerne)){
echo "????";
}
Avatar billede Slettet bruger
27. november 2006 - 18:02 #8
Hvis du skriver hvilke forskellige opdelinger der skal være muligt samt om de skal være i checkbox eller drowdowns, så er det nemmere.

F.eks.
Køn i dropdown -> pr. default kun muligt at vælge en ting.
Køn i checkbox -> så er der 2 en til mand, og en til kvinder.

Måske en drowdown med noget alder f.eks. (evt. mulighed for at kunne selecte flere ting end en)
0-8 år
9-16
16-30
30+

--------------------------------------
Skal det være muligt at sende HTML, eller kun tekst eller hvordan?
Avatar billede mjl Nybegynder
27. november 2006 - 18:07 #9
Jeg skal sende en simpel tekst (textarea) med et emne, til nogle emails valgt fra en Database ...

Måske er dette løsningen :

<input type="checkbox" name="sendmail[]" value="email@mail.dk"> Navn på modtager


foreach($_POST["sendmail"]) {
mail($_POST["sendmail"], "subject", "indhold", "From:mailafsenders@email.dk");
}
Avatar billede michaeltryl Seniormester
27. november 2006 - 18:11 #10
du kan gøre sådan for at udskrive listen med brugere
så skal der bare
name="send" method="POST" ACTION="side.php"
<?
$hent_modtagerne = mysql_query("SELECT * FROM table ORDER BY navn");
while ($a = mysql_fetch_assoc($hent_modtagerne))
}
$navn = $a[navn];
$email = $a[email];

echo"<input type='checkbox' value='$email' name='email'> $navn <br>";
}
?>
</form>
Avatar billede michaeltryl Seniormester
27. november 2006 - 18:15 #11
så ville jeg nok lave et update feltet "send" sætte det til "nu" herefter sende mailen til alle hvor feltet "sendt"= nu og til sidst update feltet sendt tilbage til "nej" så den er klar til næste gang
Avatar billede michaeltryl Seniormester
27. november 2006 - 18:18 #12
du kan evt bruge dette script til at sende med, på den måde kan du også se hvilke mails der ikke blev sendt korrekt og på den måde forsøge at sende til dem igen, uden dem der allerede har fået mailen får den igen.

if ( mail($email,$emne,$nytekst,$header) )
{
      /** indsæt til mysql, fordi nu er den true, og ER sendt **/
mysql_query("UPDATE til_nyhed SET sendt = 'ja' WHERE email='$email'") or die(mysql_error());

      flush();
      sleep(1); /** venter 1 sekundt, før den går videre **/
      flush();
      echo "$email blev sendt <strong>korrekt</strong><br />\r\n";
} else {
      /** indsæt til mysql, fordi nu er den false, og IKKE sendt **/
mysql_query("UPDATE til_nyhed SET sendt = 'nej' WHERE email='$email'") or die(mysql_error());
      flush();
      sleep(1); /** venter 1 sekundt, før den går videre **/
      flush();
      echo "$email blev sendt <strong>ukorrekt</strong><br />\r\n";
}}
Avatar billede michaeltryl Seniormester
27. november 2006 - 18:20 #13
jeg glemte lige en forspørgsel så jeg mente sådan her i stedet

$hent = mysql_query("SELECT email FROM tabel WHERE sendt ='nu'"); while ( $row = mysql_fetch_assoc ( $hent ) ) 
{
$email = $row[email];

if ( mail($email,$emne,$nytekst,$header) )
{
      /** indsæt til mysql, fordi nu er den true, og ER sendt **/
mysql_query("UPDATE til_nyhed SET sendt = 'ja' WHERE email='$email'") or die(mysql_error());

      flush();
      sleep(1); /** venter 1 sekundt, før den går videre **/
      flush();
      echo "$email blev sendt <strong>korrekt</strong><br />\r\n";
} else {
      /** indsæt til mysql, fordi nu er den false, og IKKE sendt **/
mysql_query("UPDATE til_nyhed SET sendt = 'nej' WHERE email='$email'") or die(mysql_error());
      flush();
      sleep(1); /** venter 1 sekundt, før den går videre **/
      flush();
      echo "$email blev sendt <strong>ukorrekt</strong><br />\r\n";
}}
Avatar billede mjl Nybegynder
27. november 2006 - 19:00 #14
Takker mange gange - svar please! :)
Avatar billede mjl Nybegynder
10. december 2006 - 17:04 #15
Points?
Avatar billede michaeltryl Seniormester
10. december 2006 - 19:11 #16
svar
Avatar billede mjl Nybegynder
10. december 2006 - 19:18 #17
Tak igen, for hjælpen!
Avatar billede michaeltryl Seniormester
10. december 2006 - 19:25 #18
velbekom :-)
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