Hallo,

ik heb een vraagje over gegevens in variable stoppen.

ik ben nu best een tijd bezig met mijn mailing script en alles gaat prima.
erger nog het heeft heel kort gewerkt....

bij het mail script kan ik een vast email adres in kan vullen. (dan werkt hij perfect)
waar ik nu tegen aan loop is dat ik bij het mail script een email adres uit de database wil halen en deze gebruiken om naar te mailen.

ik heb de database gegevens al uitgelezen en met een echo kunnen posten en dan krijg ik het goede mail adres dus dat zou moeten werken.

nu een stukje code voor de uitleg :


$gegevens['email'] = "[email protected]";		// Webmaster E-mail


nu wil ik dus in de $gegevens['email'] de gegevens zetten van $row['usermail']
hoe ga ik dit doen?
dit is hoe ik dacht dat het moest maar dat werkte niet.


$gegevens = $row['usermail'];


kan iemand een zetje de goede kan op geven?
Marcel sauer op 03/03/2015 18:13:04

nu wil ik dus in de $gegevens['email'] de gegevens zetten van $row['usermail']


Dan moet je dat wel doen en niet $gegevens gebruiken.

$gegevens['email'] = $row['usermail'];
ok santhe,

dit heb ik ook al geprobeerd alleen werkte dit eerst niet.
nu heb ik het weer verandert en doet hij het weer wel .....

ik heb geen idee wat ik fout heb gedaan dan.
misschien toch een tik foutje of aanhaling vergeten denk ik..

bedankt in ieder geval.


[size=xsmall]Toevoeging op 04/03/2015 19:56:13:[/size]

Net zoals ik eerder omschreef heeft het script weer heel kort gewerkt en doet het nu weer niet .......

ik heb er in totaal ongeveer 25 mails mee kunnen versturen en nu werkt hij weer niet meer....

zal ik het gehele script maar even posten???
Misschien wordt de mail als spam gezien en geblocked.
nee ook niet staat niet in de spam folder.

EDIT : ok heel vaag hij doet het in eens weer.....

kan het te maken hebben dat er een buffer vol loopt of zo en deze na 24 uur reset?
en dan bedoel ik met mijn pagina die buffert of zo?
Het werkt in jouw geval waarschijnlijk als volgt: als je via PHP mail verstuurt, dan is -net zoals gewone briefpost- je bericht niet rechtstreeks onderweg naar de ontvanger. Je hebt enkel je brief op de post gedaan (in de brievenbus). De brievenbus wordt op gezette tijden geleegd en dan gaat je brief van postkantoort naar postkantoor en uiteindelijk naar je eindbestemming.

Mogelijk wordt je postbus zelden / onregelmatig geleegd, of blijft je brief een tijd liggen bij een tussengelegen postkantoor.

Als je brief niet op de goede manier is opgesteld (niet kloppende MIME headers of andere mankementen waardoor de briefpost als "reclame" wordt aangezien) dan kan dit ook zorgen voor een vertraging in het bezorgen of het belanden in de spamfolder hiervan.

Kijk of aan de ontvangstkant of er informatie is toegevoegd aan het bericht (je kunt de broncode van e-mail ook bekijken net als HTML) die duidt op mogelijke problemen.

En/of informeer bij je host of er kuren zijn met het e-mailverkeer.
zo te zien kloppen de mails die ik binnen krijg. op het moment dat het script niet meer werkt wordt er ook niks meer verstuurd.

dus als hij werkt verstuurt hij de mail en ontvang ik hem een seconden later.
als het script niet werkt verstuurt hij niks (deze melding krijg ik ook op de php site) en ontvang ik dus ook niks.

het gekke is alleen dat soms in eens doet hij het niet. (nu de 2e keer)
nu lijkt alles prima te werken. ik ga deze week een beetje experimenteren met tijden en aantal mails. kijken of ik er zo achter kom.

ow ja en om het nog mysterieuzer te maken. ik heb een user aangemaakt met als email admin@ mijn site en deze werkt altijd! ook als de rest van de mail adressen niet werken ...

Het is niet echt mogelijk dat je code het "soms" wel doet en soms niet, tenzij je dynamisch allerlei dingen samenstelt en dit -afhankelijk van de data waarmee je dit doet- fouten oplevert. Ik denk dat een debug-sessie wel verstandig is om in ieder geval uit te sluiten dat de problemen ontstaan in het script/de scripts zelf (en niet in de afhandeling van het mailverkeer, waar je vanuit PHP zelf niet zoveel aan kunt doen).

Dus ik zou zeggen: start digging :). Zet het melden van foutmeldingen aan en zorg ervoor dat test-mails de buitenwereld niet bereiken, met uitzondering van enkele test-adressen wellicht. Voeg breekpunten in je code toe en dump vooral veel data naar je scherm (of voeg op anderlei wijze "sensoren" in je code toe die opgevangen+uitgelezen kunnen worden) zodat je op de voet kunt volgen wat er allemaal gebeurt in je code.
ik ben achter de schermen even met Thomas aan het brainstormen geweest alleen komen we er niet uit. iemand die wel een idee heeft?

ik kan dus ongeveer 17 x mailen en dan verstuurt hij geen mail meer. (die melding krijg ik ook : Er is een fout opgetreden bij het verzenden van de email)

de ene keer kan ik 21x mailen de andere keer maar 15x

ik heb met dank van tips van thomas me script al iets omgebouwd.
ik vraag dus via een mysql de gegevens van de sessie op en van de user WHERE id="'.$id.'"

Kijk ook eens naar mandrill.com , mailhandler die voor je de boel afhandeld en wat meer feedback geeft op eventuele problemen
een timeout misschien?

Ik vrees namelijk dat je de mails aan het versturen bent met een browser? Dat is voor zo'n taak een onbetrouwbare weg.

Beter doe je dat vanaf de command line / in een cronjob.
Dat voorkomt een stuk waarin fouten kunnen optreden: internet verbinding heeft kort de hik, browser vindt het na x seconden geen antwoord wel mooi geweest, Apache gooit na 30 seconden de zaak dicht....

(via cli heb je geen timeout)

Reageren