user mail uit mysql database halen voor mailing systeem.
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 :
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.
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'];
Gewijzigd op 03/03/2015 18:38:49 door - 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.
Toevoeging op 04/03/2015 19:56:13:
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.
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?
Gewijzigd op 04/03/2015 20:49:55 door marcel sauer
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.
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 ...
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.
Gewijzigd op 04/03/2015 22:19:27 door Thomas van den Heuvel
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
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)
ik ga er even naar kijken.
mijn host support helaas geen cronjobs... (one.com)
als je dit via cronjobs doet moet ik dus een losse cronjob aanmaken op een andere site. hier ben ik denk ik niet echt een voorstander van.
ik verstuur de mail inderdaad via het script in de browser.
toch vind ik het raar dat er gemiddeld 17 mails wel lukken en dan vervolgens gemiddeld een 23 uur kan ik niks meer versturen.
ik kom er niet uit met dit script ik ga even een nieuwe proberen en aanpassen kijken of deze wel gaat werken.
graag zou ik wel eens van meerdere mensen op dit forum horen of het gebruikelijk is om cronjobs voor mail te gebruiken.
het is best wel balen dat mijn host dit niet aanbied.
Ze benaderen direct PHP en niet via de webserver, dus van een time-out zoals via je browser, daar is geen sprake van.
Een externe cronjob-service zal niet helpen, die heeft meestal geen direct toegang tot de server, met als gevolg ddat je via de webserver de request doet, met timeouts tot gevolg.
bedankt voor je reactie.
hiermee bedoel je dus eigenlijk dat de enigste optie is via de browser voor mij?
gelukkig heb ik nu eindelijk de fout afhandeling goed onder de knie dus is het wel duidelijk voor de gebruiker of hij verstuurd is of niet.
Marcel, een cronjob is gewoon een scheduled task ofwel een opdracht die uitgevoerd wordt op een bepaalde tijdsinterval (bijvoorbeeld ieder uur) en het verloopt geheel automatisch zolang de server maar aanstaat. De browser komt er dus juist NIET aan te pas. Het proces draait op de achtergrond.
Ik zou je (wederom en) nog steeds aanraden contact op te nemen met je host over dit euvel.
dus je optie is om het via een bestaand aangemaakt mail adres te versturen.
maar hoe pas ik dit aan in mijn script??
is dat dan deze variabelen vervangen naar 1 vast mail adres??
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
// lol sorry Aar ;)
// Headers
$headers = "From: \"Contact Formulier\" <".$cfg['email'].">\r\n";
$headers .= "Reply-To: \"".$naam."\" <".$email.">\n";
$headers .= "Return-Path: Mail-Error <".$cfg['email'].">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
?>
// lol sorry Aar ;)
// Headers
$headers = "From: \"Contact Formulier\" <".$cfg['email'].">\r\n";
$headers .= "Reply-To: \"".$naam."\" <".$email.">\n";
$headers .= "Return-Path: Mail-Error <".$cfg['email'].">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
?>
Gewijzigd op 16/03/2015 21:42:22 door marcel sauer
Code (php)
1
2
3
4
5
2
3
4
5
<?php // kleurtjes laten zien
$headers = 'From: "Contact Formulier" <[email protected]>\r\n';
$headers .= 'Reply-To: "Jantje Pietje" <[email protected]>\n';
$headers .= 'Return-Path: Mail-Error <[email protected]>\n';
?>
$headers = 'From: "Contact Formulier" <[email protected]>\r\n';
$headers .= 'Reply-To: "Jantje Pietje" <[email protected]>\n';
$headers .= 'Return-Path: Mail-Error <[email protected]>\n';
?>
Gewijzigd op 16/03/2015 21:42:33 door - Ariën -
Marcel sauer op 16/03/2015 21:32:03:
van een ondefinieerbaar mail adres
Misschien een goed adres gebruiken?
ze bedoelen hier mee geen email adres van hun waar mee gemaild wordt.
in mijn script geef ik het mail adres van de user die zend mee.
bedankt Aar! ik ga dit even proberen.