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
Ik zou eerst alles eens in een database onder gaan brengen, geen gerommel met losse tekstbestanden enzo maar alles gestructureerd op één plek.

Wanneer je veel/semi-bulk mail gaat versturen mag je ook even nadenken over een slimme oplossing, waarbij ik op zijn minst gebruik zou maken van een soort van library zoals PHPMailer.

En tot slot, heb hier verder geen ervaring mee dus kan mij vergissen, is het volgens mij zo dat wanneer je vanaf locatie Y mail stuurt uit naam van X dit wel als zodanig geconfigureerd moet zijn, anders wordt je mail snel als ongewenst gemarkeerd (spam).

Wanneer je veel mail gaat versturen lijkt het mij belangrijk dat je vertrouwd bent met de regels van dit spel.
Beste,

Het gaat hier niet om naar duizende personen nieuwsbrieven te versturen, eerder naar een beperkte groep van leden. Het gaat hier trouwens puur over PHP scripting ;)
Toch bedankt voor je reaktie.

Graag een oplossing voor het probleem ...
mvg
Is het gewoon niet $to?

Persoonlijk gezien ik zou ik ook liever naar phpMailer kijken. Dit mail zoveel makkelijker dan de standaard mailfunctie, waarbij je zelf alle nodige ingredienten toe moet voegen om je mails niet als spam te willen alten markeren. Je kan dan met enkele regeltjes als een mailtje wegsturen zonder je druk te maken om de headers.

Grappig om te zien dat het een oud script is uit 2002 die van Webmensen komt :-P
Beste,

Neen $to geeft alle emails van alle leden in een nieuwsbrief, en dat kan niet de bedoeling zijn dat anderen deze adressen ook kunnnen lezen vandaar de bcc.

Ik dank jullie voor jullie bezorgdheid en mij phpMailer aanbevelen maar ik zou graag bovenstaand php script werkende krijgen - email van elke ontvanger in de nieuwsbrief krijgen (zie bovenstaand script)

Inderdaad het is een script uit 2002 ;)
mvg
Als het goed is zou het $nieuwsbriefBestand[0] moeten zijn.
Maar waarom zou je voortborduren op scripting uit 2002(!), terwijl we nu 14 jaar verder zijn?
De code is echt... een drama te noemen.
Neen jammergenoeg, $nieuwsbriefBestand[0] is het niet, geeft op alle nieuwsbrieven enkel het eerste email adres uit het dataBestand m.a.w.
naar persoon 1 plaatst hij [email protected]
naar persoon 2 plaatst hij ook [email protected]
naar persoon 3 ook [email protected]
dus allemaal dezelfde email adressen

zou moeten zijn
persoon 1 -> [email protected]
persoon 2 -> [email protected]
persoon 3 -> [email protected]
enz ...

Bedankt in ieder geval om mee te helpen zoeken naar een oplossing!

mvg
Doe anders niet moeilijk, en gebruik gewoon phpMailer:
http://phpmailer.worxware.com/index.php?pg=examplebmail

Tevens raad ik een grondige rewrite aan, zodat je script er weer een tijdje tegenaan kan. Deze code uit 2002 vind ik gewoon zwaar belabberd. De enige weg is haast door met 'trial and error' en 'debuggen' er uit te komen hoe het werkt.

Beste,

Ik doe niet moeilijk, ik probeer gewoon het script werkend te krijgen. Ik kijg ofwel alleen het eerste ofwel het laatste email in de nieuwsbrief. Ook heb ik al hetgeen ik vraag verkregen m.a.w. ieder email adres op afzonderlijke nieuwsbrief maar dan verstuurt hij deze naar alle personen in de database en dat is ook weer niet de bedoeling. Ik vraag gewoon de php code die het email adres vermelt in de nieuwbrief van elke persoon waar naar de nieuwsbrief verzonden wordt en die in de database staat, zodat niet iedereen alle emails zien.

mvg,
Coderunner

PS Ik ga zeker ook eens naar phpMailer kijken ...
De code en de opbouw is gewoon niet netjes. Dus op een op een gegeven moment houdt het gewoon op. Tenzij je extra tijd wil investeren om de boel op te knappen, terwijl een compleet nieuw script sneller gebouwd is, stukken compacter zal zijn en beter uitbreidbaar. Vooral als je MySQL met de MySQLi/PDO functies gebruikt, heb je een mooi voordeel.
Beste,

Ik kan geen gebruik maken van een MySQL database :-( dus dat valt weg.

Misschien iemand anders van de lezers met een oplossing ...?
Ik wacht af.

mvg,
Coderunner

Reageren