Automatisch email verzenden op verjaardag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Seb wd

seb wd

21/12/2006 11:03:00
Quote Anchor link
Hello all,

Kheb een vraag/probleem. Ik heb een scriptje gemaakt voor een soort verjaardagskalender/lijstje. Dit werkt prima, maar....
Ik wil ook dat op de dag van de verjaardag een automatisch mailtje wordt verzonden naar de persoon. Ik heb al wat gemaakt, maar het werkt niet.
Mijn vraag aan jullie..... waar zit de fout of is het zo uberhaupt wel mogelijk.
Alvast bedankt voor de info!!!!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
blablabla......

// maximaal aantal te tonen jarigen
$caleventslimit = intval( $params->get( 'count', 5 ) );


$aVandaag = getdate();
$maand   = $aVandaag['mon'];
$dag     = $aVandaag['mday'];

// Deze SQL haalt uit de verjaardagen tebal op:
// datum van verjaardag, naam, en de leeftijd
$sqlcal    = "select naam, datum, datum_overlijden, naam_baas, email, " .
             "(year(curdate()) - year(datum)) as leeftijd, " .
             "concat(dayofmonth(datum),'/',month(datum)) as jarigop " .
             "from $table " .
             "where dayofyear(datum) >= dayofyear(curdate()) " .
             " order by month(datum),dayofmonth(datum) asc limit $caleventslimit";

// query uitvoeren
$database->setQuery($sqlcal);
$rows = $database->loadObjectList();

if ($rows === null) {
  $content = "Geen jarigen deze maand";
    return;
}

// resultaat opbouwen
$content  ="<font size=1><b>Komende verjaardagen</b></font><br/><br/>";

$content .= "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";

foreach($rows as $row) {
  $naam = stripslashes($row->naam);
  $datum = stripslashes($row->datum);
  $leeftijd = stripslashes($row->leeftijd);
  $jarigop = stripslashes($row->jarigop);
  $datum_overlijden = stripslashes($row->datum_overlijden);
  $naam_baas = stripslashes($row->naam_baas);
  $email = stripslashes($row->email);

if($datum_overlijden == "")
  {
  $content .= "<tr><td width=5 valign=top align=left>" .
              "<font size=1><b>" . $jarigop . "</b>&nbsp;</font></td>" .
              "<td align=left valign=top>" .
             "<font size=1>" . $naam . " (" . $leeftijd . ")</font></td></tr>";
             }
else
{
 $content .= "";
}}


$content .="</table>";

//email sturen
if ($datum = $aVandaag);
mail($email,$subject,$message,$headers);

blablabla
 
PHP hulp

PHP hulp

19/11/2024 10:41:39
 
- wes  -

- wes -

21/12/2006 11:06:00
Quote Anchor link
het werkt niet?
de fout?

de fout is dat je niet zegt wat er mis gaat en geen fout laat zien
 
Frank -

Frank -

21/12/2006 11:06:00
Quote Anchor link
Quote:
maar het werkt niet
Wát werkt er niet? En wat werkt er wél? Welke foutmeldingen krijg je? (nadat je die op het scherm hebt gezet!)

etc. etc.
 
Seb wd

seb wd

21/12/2006 11:08:00
Quote Anchor link
De fout is dat er geen email wordt verzonden.
 
Terence Hersbach

Terence Hersbach

21/12/2006 11:10:00
Quote Anchor link
if ($datum = $aVandaag);

dit werkt niet

if ($datum == $aVandaag)
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
 
Luke Banning

Luke Banning

21/12/2006 11:14:00
Quote Anchor link
Inderdaad, op de manier die jij hem had is de waarde datum altijd de waarde aVandaag ;-)
 
Seb wd

seb wd

21/12/2006 11:18:00
Quote Anchor link
Merci! Ik zal testen of het werkt.
 
Wim

Wim

21/12/2006 11:28:00
Quote Anchor link
Ik neem aan dat het script vanuit een cron-job of iets vergelijkbaars wordt aangeroepen? Anders ben je wel afhankelijk van een handmatige handeling om het script op te starten lijkt mij.
 
Seb wd

seb wd

21/12/2006 11:31:00
Quote Anchor link
als iemand een nieuwe verjaardag plaatst, dan komt deze automatisch er op te staan en als de datum voorbij is, dan verdwijnt deze automatisch.
 
Wim

Wim

21/12/2006 13:37:00
Quote Anchor link
Oh, ik dacht dat je iedereen op zijn verjaardag een mail wilde sturen.
Vandaar mijn reaktie. :)
 
Seb wd

seb wd

21/12/2006 13:51:00
Quote Anchor link
Maar door de bovengenoemde script wordt toch automatisch op de dag het email naar de jarige gestuurd???
 
Wim

Wim

21/12/2006 13:58:00
Quote Anchor link
Alleen als het script wordt uitgevoerd lijkt me.

Als jij of een bezoeker de pagina met dat script niet opent, wordt er m.i. geen mail gestuurd.
 
Seb wd

seb wd

28/12/2006 21:31:00
Quote Anchor link
hello all,

Nou helaas het script verstuurd geen e-mail. Volgens mij is

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if ($datum == $aVandaag);

fout, want $aVandaag verwijst eigenlijk niet naar de huidge datum op dat moment. Weet iemand welke code dat wel is?
Alvast bedankt!
 
- SanThe -

- SanThe -

28/12/2006 21:35:00
Quote Anchor link
Kijk eens bij date().
 
Jan Koehoorn

Jan Koehoorn

28/12/2006 21:46:00
Quote Anchor link
Hoe zorg je er voor dat je script ook daadwerkelijk uitgevoerd wordt? Stel nu dat niemand je pagina opvraagt op een dag dat er iemand jarig is?
 
Seb wd

seb wd

29/12/2006 11:51:00
Quote Anchor link
Hello,

Elke dag bezoeken mensen mijn site, dus de kans is klein dat het sprit niet opgevraagd wordt. Maar is er dan een "makkelijke" manier om het automatisch te laten draaien?
SanThe: ik heb gekeken bij date(), maar moet ik persé iets tussen de haakjes zetten?
 
Arjan Kapteijn

Arjan Kapteijn

29/12/2006 11:53:00
Quote Anchor link
Je zou een cronjob kunnen maken die gewoon om drie uur s'nachts dat script gaat runnen.
 
Seb wd

seb wd

29/12/2006 11:54:00
Quote Anchor link
weet je een link waar ik hier informatie over kan vinden?
 
Jens V

Jens V

29/12/2006 11:56:00
Quote Anchor link
Jan Koehoorn schreef op 28.12.2006 21:46:
Hoe zorg je er voor dat je script ook daadwerkelijk uitgevoerd wordt? Stel nu dat niemand je pagina opvraagt op een dag dat er iemand jarig is?


Ik was ook al zoiets aan het denken...
Ik had overtijd ook een vraag over cronjobs. Het probleem was gewoon dat je script het wel doet, maar dat de pagina niet wordt aangeroepen..

EDIT:
hier is de link:)
http://www.phphulp.nl/forum/showtopic.php?cat=1&id=24229

EDIT2:
Mijn webserver is tijdelijk offline, ik hoop dat hij snel terug on komt. Als hij terug online is kan je die afbeelding die erop staat over de cron bekijken:)
Gewijzigd op 01/01/1970 01:00:00 door Jens V
 
Willem vp

Willem vp

29/12/2006 12:16:00
Quote Anchor link
seb schreef op 28.12.2006 21:31:
hello all,

Nou helaas het script verstuurd geen e-mail. Volgens mij is

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if ($datum == $aVandaag);

fout, want $aVandaag verwijst eigenlijk niet naar de huidge datum op dat moment. Weet iemand welke code dat wel is?
Alvast bedankt!
Let op het foutieve gebruik van de edele puntkomma ;-)

Verder lijkt het me het meest praktisch om een (extra) SQL-query te maken waarmee je alle jarigen van vandaag opvraagt. Die kun je dan mail sturen zonder de datum te hoeven controleren, want met die array-constructie van $aVandaag moet je behoorlijk gaan prutsen om een datumvergelijking te kunnen uitvoeren.

En (zoals al eerder gezegd) zou dit dus in een cronjob moeten, omdat je anders de kans loopt dat iemand óf geen mail ontvangt, óf een paar honderd (afhankelijk van het aantal bezoekers).

O ja, en zet je mail-commando binnen de foreach, anders verstuurt 'ie alleen mail naar de laatste persoon in je lijst.
Gewijzigd op 01/01/1970 01:00:00 door Willem vp
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.