Hello,

Ik ben een nieuwsbriefsysteem aan het maken maar ik zit strop.
De nieuwsbrief haalt zijn gegevens uit een text bestand en maakt groepen zodat de te versturen nieuwsbrief emails niet té groot in aantal zijn zodat servers ze als spam gaan aanzien.

Nu wil ik aan elke persoon in de database zijn eigen email adres in de nieuwsbrief plaatsen (zie in de onderstaande code '. $ ??? .' maar weet niet hoe en waar ik deze code moet inbrengen. Ik hoop dat iemand mij de code zelf en waar die moet staan kan geven. Je zou me een groot plezier doen want ik ben er al weken mee bezig maar zonder resultaat.

Hier is mijn code (werkt maar script email adres persoon toevoegen ontbreekt)

Text bestand ziet er zo uit:
[email protected]
[email protected]
[email protected]
[email protected]
etc...


PHP script
$Nieuwsbrief = "Onderwerp: $Onderwerp\nBericht:\n\n$Bericht"; 
	$Nieuwsbrief = stripslashes($Nieuwsbrief); 
	$Nieuwsbrief = nl2br(htmlspecialchars(trim($Nieuwsbrief))); 

	if($gebruikersnaam == $_POST['gebruikersnaam'] && $wachtwoord == $_POST['wachtwoord'] && $_SERVER['REQUEST_METHOD'] == 'POST' ) 
	{
		$nieuwsbriefBestand = file($dataBestand);
		$nieuwsbriefBestandLengte = count($nieuwsbriefBestand);

		$groepenTeller = 0;

		for($i = 0; $i < ($nieuwsbriefBestandLengte+50); $i+=50) 
		{
			$groep = null;
			$groepenTeller++;
			for($a = $i; $a < ($i+50); $a++) 
			{
				if($nieuwsbriefBestand[$a]) 
				{
					$groep .= trim($nieuwsbriefBestand[$a]).",";
				}
			}
			if($groep) { $groepen[] = $groep; }
		}
 
		
			for( $i = 0; $i < count( $groepen ); $i++ ) 
			{
				$to = $jouwEmail;
				$onderwerp = stripslashes($_POST['onderwerp']);
				$_POST['bericht'] = str_replace("\n", "<br />", $_POST['bericht']);
				$bericht = nl2br(stripslashes($_POST['bericht'])).'<br /><br /><br /><center>Je hebt deze mail ontvangen omdat je bent ingeschreven op onze nieuwsbrief.<br />
						Deze nieuwsbrief is verstuurd aan '. $??? .'
Als u geen informatie meer wenst te ontvangen, klik dan <a href='. $Uitschrijven .'>hier</a> om uw e-mail adres uit het systeem te verwijderen.<br />';
										//$headers = 'Cc:'."$groepen[$i]". "\r\n";
				$headers .= 'Bcc:'."$groepen[$i]". "\r\n";
				$headers .= 'From:'.utf8_decode($jouwWebsiteNaam).' <'.$jouwEmail.'>' . "\r\n";
				if($_POST['html'] == 1)
				{ 
					$headers .= "MIME-Version: 1.0\n";
					$headers .= "Content-Transfer-Encoding: 8bit\n";
					$headers .= "Content-type: text/html; charset=utf-8\n";
				}

				mail( $to, $onderwerp, $bericht, $headers );

			}

Alvast bedankt.
Mvg.
Coderunner
- Ariën - op 05/04/2016 08:45:19


<?php
$fileName = "mailadressen.txt";
$listAddresses = file($fileName);
foreach($list as $address) {
	// in $address heb je nu je mailadres.
	// hier kan je de mail verwerken. 
}
?>


Hier krijg ik deze error
Warning: Invalid argument supplied for foreach() in /misc/13/303/659/954/9/user/web...

Wat kan ik hieraan doen?
Typo van mij, gebruik dus $listAddresses i.p.v. $list. Zie mijn gereviseerde code.
Onthoud wel dat deze code tot nu toe niks doet of laat zien. Dat is aan jouw om dat te proberen in te bouwen.
Dit topic mag afgesloten of zelfs verwijderd worden daar hetgeen ik vraag onmogelijk is: verzenden als bcc én persoonlijke emails maken ... bcc zijn steeds dezelfde emails qua inhoud.

Toch bedankt voor de hulp van iedereen
De inhoud is hetzelfde, maar omdat jouw server niet bepaalt naar wie ze worden verstuurd in het geval van BCC, maar de mailserver, is het niet mogelijk om de mail dan persoonlijk te maken. Het gaat om de geadresseerde, niet alleen aan wie de mail wordt doorgegeven.

Ik zeg niet dat je vraag onmogelijk is, want je kan prima losse mails versturen. Of zit je bij een hostingprovider die moeilijk doet bij meer dan 25 mails?

Verder verwijderen of sluiten we geen topics op verzoek, en houden we ze graag intact.
Alles even laten bezinken en dan tot de vaststelling gekomen dat hetgeen ik vroeg niet kon met groepen.
Ik zat téveel aan het verpersoonlijken van elke email in een groep te denken dat ik de bcc over het hoofd zag.
Ik weet wel dat je met een loop in php losse emails kan versturen met het email adres in maar dan moet ik ze niet eerst in groepen verdelen want een groep of deze nu via to of cc of bcc verzonden wordt, de inhoud blijft steeds dezelfde voor elke email van de groep.

Inderdaad ik kan maar x (ken het aantal niet meer, zou ik eens moeten opzoeken maar aantal is vrij klein), aantal emails per minuuut versturen.

Anders opzoek gaan naar een newsletter server en daar een account aanmaken ;-)

Nogmaals bedankt
(B)CC is ook bedacht om iedereen exacte dezelfde mail te sturen. Dus gepersonaliseerd of een ander linkje zit er gewoon niet in. Vroeger al niet, nu ook niet.

Verder kan je ook met sleep() in PHP een wachttijd inbouwen. Let wel op je executiontime.
Je kan bijvoorbeeld ook naar MailChimp kijken als je wilt dat zij alles afhandelen. Ze bieden een goede PHP-api voor zover ik weet.

Reageren