10. februar 2007 - 16:27Der er
3 kommentarer og 1 løsning
Mailscript til flere modtagere i en MySQL-database
Hej.
Jeg har fundet dette formmail-script, men jeg vil gerne kunne have, at det skal kunne sende til en række e-mailadresser, som jeg har i en MySQL-database (der bliver aldrig mere end 20 stk.):
<?php if (isset($_POST['submit'])) { if (!empty($_POST['name']) && // tjek, at der er skrevet et navn !empty($_POST['email']) && // tjek, at der er skrevet en e-mail-adresse !empty($_POST['subject']) && // tjek, at der er skrevet et subject !empty($_POST['message']) && // tjek, at der er skrevet en besked
// her følger sikringen mod spambotter !strpos($_POST['name'], "dit_domain.dk") && // tjek, at dit domæne ikke er skrevet i feltet "navn" !strpos($_POST['email'], "dit_domain.dk") && // tjek, at dit domæne ikke er skrevet i feltet "email" !strpos($_POST['name'], "@") && // tjek, at der ikke er et @ i "navn" !eregi("\r",$_POST['name']) && // tjek, at der ikke er "vogn-retur" i "navn" !eregi("\n",$_POST['name']) && // tjek, at der ikke er "linjeskift" i "navn" !eregi("\r",$_POST['email']) && // tjek, at der ikke er "vogn-retur" i "email" !eregi("\n",$_POST['email'])) // tjek, at der ikke er "linjeskift" i "email"
// er alt ok, fortsættes med afsendelse af mailen { $headers="From: ".$_POST['name']."<".$_POST['email'].">"; if (@$_POST['customer_copy']) { $headers .= "\r\nBcc: ".$_POST['email']; } if (@mail("dit.navn@dit_domain.dk", strip_tags($_POST['subject']), stripslashes(strip_tags($_POST['message'])), $headers)) { echo "<p>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</p>"; } else { echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>"; } } else { echo "<p>Mailen kunne ikke sendes, alle felter skal udfyldes korrekt!</p>"; } } ?>
Er der en, som kan hjælpe me at ændre criptet, så der sendes til de adresser, der ligger i databasen?
Følgende kode sender nu til email adresser i feltet "Email1" som er i tabellen "ab_records"..
Men jeg forstår ikke meningen i scriptet. Det er jo en slags support mail? Hvorfor skal den sendes til 20 e-mails?
Men det har du nok en grund til.
Før du bruger det så skal du self. lige selv sætte disse ting op: mysql_connect(); mysql_select_db(); mysql_close();
<?php // mysql_connect(); // mysql_select_db(); if (isset($_POST['submit'])) { if (!empty($_POST['name']) && // tjek, at der er skrevet et navn !empty($_POST['email']) && // tjek, at der er skrevet en e-mail-adresse !empty($_POST['subject']) && // tjek, at der er skrevet et subject !empty($_POST['message']) && // tjek, at der er skrevet en besked
// her følger sikringen mod spambotter !strpos($_POST['name'], "dit_domain.dk") && // tjek, at dit domæne ikke er skrevet i feltet "navn" !strpos($_POST['email'], "dit_domain.dk") && // tjek, at dit domæne ikke er skrevet i feltet "email" !strpos($_POST['name'], "@") && // tjek, at der ikke er et @ i "navn" !eregi("\r",$_POST['name']) && // tjek, at der ikke er "vogn-retur" i "navn" !eregi("\n",$_POST['name']) && // tjek, at der ikke er "linjeskift" i "navn" !eregi("\r",$_POST['email']) && // tjek, at der ikke er "vogn-retur" i "email" !eregi("\n",$_POST['email'])) // tjek, at der ikke er "linjeskift" i "email"
// er alt ok, fortsættes med afsendelse af mailen { $headers="From: ".$_POST['name']."<".$_POST['email'].">"; if (@$_POST['customer_copy']) { $headers .= "\r\nBcc: ".$_POST['email']; } $sql = "SELECT Email1 FROM ab_records"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)) { if (@mail($row[0], strip_tags($_POST['subject']), stripslashes(strip_tags($_POST['message'])), $headers)) { echo "<p>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</p>"; } else { echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>"; } } } else { echo "<p>Mailen kunne ikke sendes, alle felter skal udfyldes korrekt!</p>"; } }
hej dcheng. Tak for din hjælp. Det virker fint, bortset fra at efter en mail er sendt, så skriver den: "Tak for din henvendelse. Jeg svarer så hurtigt som muligt." lige så mange gange som det antal mails, der er sendt. Kan du hjælpe med at rette det?
Nu skriver den det kun "Tak for din henvendelse. Jeg svarer så hurtigt som muligt." 1. gang. Og den skriver "Mail nr. XXX blev ikke sendt." hvis den fejler med at sende en af dem, XXX er naturligvis et tal som svarer til den mail som blev sendt. Den første starter med "1".
<?php // mysql_connect(); // mysql_select_db(); if (isset($_POST['submit'])) { if (!empty($_POST['name']) && // tjek, at der er skrevet et navn !empty($_POST['email']) && // tjek, at der er skrevet en e-mail-adresse !empty($_POST['subject']) && // tjek, at der er skrevet et subject !empty($_POST['message']) && // tjek, at der er skrevet en besked
// her følger sikringen mod spambotter !strpos($_POST['name'], "dit_domain.dk") && // tjek, at dit domæne ikke er skrevet i feltet "navn" !strpos($_POST['email'], "dit_domain.dk") && // tjek, at dit domæne ikke er skrevet i feltet "email" !strpos($_POST['name'], "@") && // tjek, at der ikke er et @ i "navn" !eregi("\r",$_POST['name']) && // tjek, at der ikke er "vogn-retur" i "navn" !eregi("\n",$_POST['name']) && // tjek, at der ikke er "linjeskift" i "navn" !eregi("\r",$_POST['email']) && // tjek, at der ikke er "vogn-retur" i "email" !eregi("\n",$_POST['email'])) // tjek, at der ikke er "linjeskift" i "email"
// er alt ok, fortsættes med afsendelse af mailen { $headers="From: ".$_POST['name']."<".$_POST['email'].">"; if (@$_POST['customer_copy']) { $headers .= "\r\nBcc: ".$_POST['email']; } $sql = "SELECT Email1 FROM ab_records"; $result = mysql_query($sql); $i = 1; while($row = mysql_fetch_array($result)) { if (@mail($row[0], strip_tags($_POST['subject']), stripslashes(strip_tags($_POST['message'])), $headers)) { // echo "True"; } else { echo "Mail nr. ".$i." blev ikke sendt."; } $i++; } echo "<p>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</p>"; } else { echo "<p>Mailen kunne ikke sendes, alle felter skal udfyldes korrekt!</p>"; } }
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.