06. maj 2003 - 18:50Der er
14 kommentarer og 1 løsning
send mail
Hej ... jeg har følgende til at sende mail med over PHP, jeg ville bare gerne have den udvidet så jeg kunne sende til flere på en liste? listen ligger i en .txt-fil og der står en mailadresse på hver linie. der skal vel en variabel mere ind istedet for der hvor jeg har skrevet "flere@mail.adresser" og den skal så hentes fra filen... hvordan gør jeg det? eller er der en anden måde?
<H1>send mail</H1> <form action="mail.php" method="post"> Emne:<br> <input type="text" name="subject" size="30"><br> Indhold:<br> <textarea name="content" cols="30" rows="5">Slet denne tekst og skriv her hvad du har at skrive...</textarea><p> <input type="submit" value="Send"></p>
<?php
$adminmail = "admin@mail.dk";
$subject = $_REQUEST["subject"]; $content = $_REQUEST["content"]; mail("flere@mail.adresser", "$subject", "$content", "From: $adminmail\r\n" ."X-mailer: PHP/" . phpversion()); echo "Mail er sendt, vi vil vende tilbage snarest muligt."; ?>
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
<?php if(!isset($_POST['submit'])) { ?> <H1>send mail</H1> <form action="mail.php" method="post"> Emne:<br><input type="text" name="subject" size="30"><br> Indhold:<br><textarea name="content" cols="30" rows="5">Slet denne tekst og skriv her hvad du har at skrive...</textarea><br> <input type="submit" value="Send"> } else { $adminmail = 'admin@mail.dk'; $subject = $_POST['subject']; $content = $_POST['content']; $header = "From: $adminmail\r\nX-mailer: PHP/" . phpversion());
$emails = file('navnpåfil.txt'); foreach($emails as $email) { mail($email, $subject, $content, $header); } unset($emails); echo 'Mail er sendt, vi vil vende tilbage snarest muligt.'; } ?>
Det er en metode som kun bør bruges op til ca. 50 mails, da den belaster mailserveren unødvendigt hårdt! Ved flere mails bør du i stedet koble direkte op til smtp-serveren vha. fsockopen() og kommunikere direkte - lidt mere avanceret men *meget* bedre for serveren!
okay... jeg skal lige have det til at virke først... den giver lidt fejl... jeg poster koden når jeg har fået den til at virke... det skal heller ikke bruges til flere... det skal faktisk kun bruges i en kort periode... for der skulle gerne komme MySQL på senere... :-)
Efter jeg har rettet koden til dette melder den ikke længere fejl når jeg åbner siden, men den vil ikke sende noget... vil det virke bedre hvis det bliver post'et til en anden fil så formen fx er i sendmail.php og koderne er i send.php?
<?php if(!isset($_POST['submit'])) { ?> <H1>send mail</H1> <form action="send.php" method="post"> Emne:<br><input type="text" name="emne" size="30"><br> Besked:<br><textarea name="besked" cols="30" rows="5">Slet denne tekst og skriv her hvad du har at skrive...</textarea><br> <input type="submit" value="Send"> <? } else { $adminmail = 'admin@mail.dk'; $subject = $_POST['emne']; $content = $_POST['besked']; $header = "From: $adminmail\r\n" ."X-mailer: PHP/" . phpversion();
$emails = file('emails.txt'); foreach($emails as $email) { mail($email, $subject, $content, $header); } unset($emails); echo 'Mail er sendt, vi vil vende tilbage snarest muligt.'; } ?>
$emails = file('emails.txt'); foreach($emails as $email) { mail($email, $subject, $content, $header); } unset($emails); echo 'Mail er sendt, vi vil vende tilbage snarest muligt.'; } ?>
der er fjernet et } else { og så er den selvfølgelig delt og så skulle det virke... :-)
jeg ved ikke med dig, men der kommer en parse error med den der kode... og du afslutter også php uden at åbne den igen... (lige før formen... )
mit virker underligt nok... jeg har omdøbt subject og content, og så har jeg flyttet "X-mailer: PHP/" . phpversion());" jeg mener ikke at det det skal stå sådan... for det passer ikke særlig godt ind... og min send_mail.php ser således ud:
men det kunne rigtig nok sidde inde imellem det som du har gjort, og det kommer det nok også til når jeg lige får det lavet... (lidt senere) men så skal det være ren PHP og ikke en afbrudt php
ferrari: Den skal selvfølgelig åbnes igen lige inden "} else {" - sorry.
Det jeg mener med mærkeligt miks, er at du beder den om at sende mailene, hvis der "ikke er blevet trykket submit" - dvs. hvis submit ikke er sat! den eneste grund til at det fungerer er fordi submit-knappen fejlagtigt ikke er navngivet i den første kode - derfor vil det give uhensigtsmæssige resultater, hvis man kalder scriptet direkte!!!
Hvorfor vil du ikke afbryde php for at starte det op igen!? - det er hurtigere end at lave 5 echo-statements for at skrive formularen ud!
Endelig pæn udgave (utestet):
<?php $formtxt = ' <form action="mail.php" method="post" action="' . $_SERVER['PHP_SELF'] . '"> Emne:<br><input type="text" name="subject" size="30"><br> Indhold:<br><textarea name="content" cols="30" rows="5">Slet denne tekst og skriv her hvad du har at skrive...</textarea><br> <input type="submit" name="submit" value="Send">';
if(!isset($_POST['submit'])) { echo "<H1>send mail</H1>\r\n$formtxt"; } else { $adminmail = 'admin@mail.dk'; $subject = $_POST['subject']; $content = $_POST['content']; $header = "From: $adminmail\r\nX-mailer: PHP/" . phpversion()); $emails = file('navnpåfil.txt'); foreach($emails as $email) { mail($email, $subject, $content, $header); } unset($emails); echo 'Mail er sendt, vi vil vende tilbage snarest muligt.'; } ?>
okay tak... jeg ved det med anførselstegnene... man kan kun bruge dem i echo hvis man bruger ' istedet for " af en eller anden grund
Synes godt om
Ny brugerNybegynder
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.