Meer dan 1 geadreseerde

Status
Niet open voor verdere reacties.

No452354

Gebruiker
Lid geworden
12 apr 2010
Berichten
33
Hoi,

onderstaand script zorgt ervoor dat berichten verstuurd vanaf mijn website in mijn inbox terecht komen, nu zou ik graag een tweede e-mail adres willen toevoegen waar de berichten ook naar toe gestuurd zouden moeten worden. Na een kleine zoektocht op het internet ben ik er nog niet achter gekomen, iemand hier een idee?

PHP:
<?php
$EmailFrom = Trim(stripslashes($_POST['EmailFrom']));
$EmailTo = "info@website.nl";
$Subject = Trim(stripslashes($_POST['Onderwerp']));
$Naam = Trim(stripslashes($_POST['Naam']));
$Bericht = Trim(stripslashes($_POST['Bericht']));

// validation
$validationOK=true;
if (Trim($EmailFrom)=="") $validationOK=false;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}

// prepare email body text
$Body = "";
$Body .= "Naam: ";
$Body .= $Naam;
$Body .= "\n";
$Body .= "Bericht: ";
$Body .= $Bericht;
$Body .= "\n";
$Body .= "Keuze: ";
$Body .= Trim(stripslashes($_POST['meerkeuze']));
$Body .= "\n";

// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=bedankt.htm\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>

thanx in advance.
 
Laatst bewerkt:
uit mijn hoofd is het gewoon

$EmailTo = "info@website.nl;admin@website.nl";
 
mmm volgens het web zou het zo moeten kunnen

PHP:
mail("one@two.com,three@four.com,five@six.com,seven@eight.com","subject","msg","headers: true");

Anders maak je gewoon een array aan met de emailadressen en zet je de mail() in een foreache functie
 
mmm volgens het web zou het zo moeten kunnen

PHP:
mail("one@two.com,three@four.com,five@six.com,seven@eight.com","subject","msg","headers: true");

Anders maak je gewoon een array aan met de emailadressen en zet je de mail() in een foreache functie

Hoe komt de code in zijn geheel er dan precies uit te zien? ik kan eigenlijk alleen maar plakken en kopiëren :o
 
probeer eens te googlen op multi adres mail php

dan kom je van alles tegen
 
de code zal zo iets moeten worden

PHP:
<?php
$EmailFrom = Trim(stripslashes($_POST['EmailFrom']));

// mails om aan te versturen 

$EmailTo= array("info@website.nl","admin@website.nl","jij@website.nl");

$Subject = Trim(stripslashes($_POST['Onderwerp']));
$Naam = Trim(stripslashes($_POST['Naam']));
$Bericht = Trim(stripslashes($_POST['Bericht']));
 
// validation
$validationOK=true;
if (Trim($EmailFrom)=="") $validationOK=false;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}
 
// prepare email body text
$Body = "";
$Body .= "Naam: ";
$Body .= $Naam;
$Body .= "\n";
$Body .= "Bericht: ";
$Body .= $Bericht;
$Body .= "\n";
$Body .= "Keuze: ";
$Body .= Trim(stripslashes($_POST['meerkeuze']));
$Body .= "\n";

// multi mail
 foreach($EmailTo as $mail) 
 {
	// send email
	$success = mail($mail, $Subject, $Body, "From: <$EmailFrom>");
 }
 
 
// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=bedankt.htm\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>

Dit alleen niet getest!
 
Als je het efficiënter wilt doen kun je de BCC gebruiken.

Hierdoor wordt maar 1x de mail-functie aangeroepen
PHP:
<?php
$EmailFrom = Trim(stripslashes($_POST['EmailFrom']));
 
// mails om aan te versturen 
 
$EmailTo= array("info@website.nl","admin@website.nl","jij@website.nl");
 
$Subject = Trim(stripslashes($_POST['Onderwerp']));
$Naam = Trim(stripslashes($_POST['Naam']));
$Bericht = Trim(stripslashes($_POST['Bericht']));
 
// validation
$validationOK=true;
if (Trim($EmailFrom)=="") $validationOK=false;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}
 
// prepare email body text
$Body = "";
$Body .= "Naam: ";
$Body .= $Naam;
$Body .= "\n";
$Body .= "Bericht: ";
$Body .= $Bericht;
$Body .= "\n";
$Body .= "Keuze: ";
$Body .= Trim(stripslashes($_POST['meerkeuze']));
$Body .= "\n";
 
// multi mail
$emailBCC = '';
foreach($EmailTo as $mail) {
  $emailBCC .= $mail ."\r\n";
}
$success = mail('', $Subject, $Body, "From: <$EmailFrom>\r\nBCC: ". $emailBCC);
 
// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=bedankt.htm\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>
Zou als het goed is moeten werken.
 
Als je het efficiënter wilt doen kun je de BCC gebruiken.

Hierdoor wordt maar 1x de mail-functie aangeroepen

Dank je wel voor je reactie.

Dat werkt nog beter.

Alleen nu heb ik eigenlijk alweer een volgend project waar bovenstaande ook perfect op van toepassing kan zijn.

Ik wil graag dmv een php scriptje een email verzenden aan veel geadresseerden, alleen wil ik niet dat ze kunnen zien aan wie ik het allemaal heb verstuurd. Dat gaat ook via Bcc als ik het goed heb onthouden.

Weet iemand hoe onderstaand scriptje er dan uit moet komen te zien om dat te bewerkstelligen?

thx~!

PHP:
<?php
//define the receiver of the email
$to = 'info@geadresseerde.nl';
//define the subject of the email
$subject = 'Test HTML email';
//create a boundary string. It must be unique
//so we use the MD5 algorithm to generate a random hash
$random_hash = md5(date('r', time()));
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: info@mijnsite.nl\r\nReply-To: info@geadresseerde.nl";
//add boundary string and mime type specification
$headers .= "\r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\"";
//define the body of the message.
ob_start(); //Turn on output buffering
?>
--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Hello World!!! 
This is simple text email message. 

--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
--PHP-alt-<?php echo $random_hash; ?>--
<?
//copy current buffer contents into $message variable and delete current output buffer
$message = ob_get_clean();
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed" 
echo $mail_sent ? "Mail sent" : "Mail failed";
?>


Waar ik ook nog wel benieuwd naar ben is of ik wel probleemloos 250 adressen daar aan kan toevoegen zonder dat er aan de andere kant een server begint te roken.
 
Laatst bewerkt:
Er is volgens mij wel een limiet op het aantal te versturen mails. Het aantal zou ik niet weten.

Als je de adressen in de header met BCC meegeeft moet het goed komen.
PHP:
$headers .= "\r\nBCC: adres1@domein.nl, adres2@domein.nl; \r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\"";
Zie Example #4: http://nl.php.net/manual/en/function.mail.php
 
Dank je wel.

't werkt prima zo.

Stel nu dat ik deze pagina nu temailen.php noem, zou ik dan ook een temailen.htm kunnen maken waarin ik in een textfield email adressen (gescheiden door een ',' en een spatie) zou kunnen plakken en vervolgens wanneer ik op versturen klik temailen.php de zojuist ingevoerde email adressen automatisch in de Bcc terecht laat komen en vervolgens tot mailen overgaat?

is dat lastig?
 
Nee hoor, zorgen dat de action naar het PHP-bestand gaat en dat je het veld waarin de adressen staan in het BCC-veld plaatst
 
Nee hoor, zorgen dat de action naar het PHP-bestand gaat en dat je het veld waarin de adressen staan in het BCC-veld plaatst

tot mijn grote verbazing is het meteen gelukt.

zo ziet het er nu uit:

PHP:
$Bcc = Trim(stripslashes($_POST['Bcc']));
$headers .= "\r\nBCC: $Bcc; \r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\"";

Dat moet dan goed zijn zou je zeggen.


Heb ik nog een vraag, hoe kan ik de ingevulde email adressen naar mezelf toe mailen zodat ik kan zien wie er allemaal gebruik van hebben gemaakt?


Kan ik dan het script helemaal bovenin dit topic (naar behoren aangepast) er gewoon onder plakken? of krijg ik dan een foutmelding omdat ik in het zelfde bestand twee keer iets wil mailen?
 
Laatst bewerkt:
Wat dacht je van de mail-functie opnieuw aanroepen met andere inhoud? ;)
 
Wat dacht je van de mail-functie opnieuw aanroepen met andere inhoud? ;)

Kan ik dan het script helemaal bovenin dit topic (naar behoren aangepast) er gewoon onder plakken? of krijg ik dan een foutmelding omdat ik in het zelfde bestand twee keer iets wil mailen?
 
ik had dit gemaakt, en onder de bestaande code geplakt:

PHP:
<?
$EmailFrom = "info@mijnsite.nl";
$EmailTo = "bestemming@meel.com";

$validationOK=true;
if (Trim($EmailFrom)=="") $validationOK=false;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}
 
// prepare email body text
$Body = "";
$Body .= "BCC: ";
$Body .= $BCC;

$success = mail($EmailTo, $Body, "From: <$EmailFrom>");

// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=bedankt.htm\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}




?>

Maar dat werkt niet helaas...


Ik krijg dan opeens wel een mailtje van de provider waar ik het domein laat hosten. 'container@provider.com'

Wat gebeurd er precies wat die reactie oplevert?
 
Laatst bewerkt:
't is inmiddels gelukt, was gelukkig gemakkelijker dan ik dacht.

ik hoefde alleen maar onderstaand scriptje onder aan de bestaande pagina te plakken

PHP:
<?php
$Bcc = Trim(stripslashes($_POST['Bcc']));

$to = "mailer@domein.nl";
$subject = "De mail adressen.";
$message = $Bcc;
$from = "mailer.php";
$headers = "From: $from";
mail($to,$subject,$message,$headers);
echo "Bcc mailer Sent.";
?>

nogmaals dank voor de input.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan