Ik ben bezig om mijn adressen database uit te breiden met een functie die een php pagina is die door een cron-job/scheduler ieder 24 uur wordt uitgevoerd.

Er moet een mailtje verstuurd worden naar alle adressen als het nieuwjaar (NY) of Kerstmis of de gebruiker jarig is. Dit kan nog worden uitgebreid.

Nu zat ik te denken de mail functie in een functie te stoppen, maar aangezien mail zelf een functie is, weet ik niet of dat mag.

<?php

######################################
# Geschreven door Rene Wennekes #
# op 10-8-2007 #
# [email protected] #
######################################

$vandaag=date(d)."-".date(m)."-".date(Y); // Huidige datum idem als db notatie (dd-mm-yyyy)
$datumvandaag=substr($vandaag,0,5); //Kijken of iemand jarig is
$jaar=substr($vandaag,6,9); // Voor de nieuwjaarskaart en berekening leeftijd voor verjaardagskaart.

################################
# Belangrijke datums. #
# 25-06 xmas.inc.php #
# 01-01 newyear.inc.php #
# $datumjarig birthday.inc.php #
################################

$dbhost="localhost";
$dbuser="niet belangrijk";
$dbpass="niet belangrijk";
$db="adressen";

$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");

$sql="SELECT * FROM `adressen` order by 'achternaam'";

$result=mysql_db_query("$db","$sql",$mysql_id) or die("Fout bij uitvoeren query");
$records=mysql_num_rows($result);

print "\n<table border='0'>\n";
while ($line=mysql_fetch_row($result)) {

// Gegevens nodig voor de te versturen kaart

$adresnum=$line[0];
$voornaam=$line[2];
$email[0]=$line[8];
$email[1]=$line[9];
$geboren=$line[10];
$datumjarig=substr($geboren,0,5); // Jarig op ... vergelijken met $datumvandaag.
$jaargeboren=substr($geboren,6,9); // Geboren in aftrekken van $jaar is de leeftijd.

foreach ($email as $sendto) {

// Gegevens voor e-mail verzending klaarmaken (headers).

$sendfrom="[email protected]"; //Afzender adres

/* To send HTML mail, you can set the Content-type header. */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* additional headers */
$headers .= "To: " . $sendto . "\r\n";
$headers .= "From: " . $sendfrom . "\r\n";


// print "\t<tr>\n"; // Nieuwe tabelregel.
if ($sendto!="") {
print "\t<tr>\n"; // Nieuwe tabelregel.
print "\t\t<td>$voornaam</td>\n";
//print "\t\t<td>$email[0]</td>\n";
print "\t\t<td>$sendto</td>\n";
print "\t\t<td>$datumjarig</td>\n"; // Optioneel, misschien niet gebruikt.

// Hier komt in de volgende cellen te staan of en welke kaart er verstuurd wordt.
// Hier komt de code voor het versturen
// Dit heeft 1 geldige e-mail adres ($sendto) met $voornaam en eventueel gegeven $datumjarig.
switch ($datumvandaag) {

case "25-12": // Het is kerstmis !!!
include("xmas.inc.php"); // html-kaart komt in $message_all.
$subject="Prettige feestdagen"; // Onderwerp e-mail.
print "<td>XM ";
if(mail("$sendto", "$subject", "$message_all", $headers)) {
echo "OK";
}
else {
echo "Fout";
}
print " </td>";

case "01-01": // Het is nieuwjaar !!!
include("newyear.inc.php"); // html-kaart komt in $message_all.
$subject="Gelukkig nieuwjaar!!!"; // Onderwerp e-mail.
print "<td>NY ";
if(mail("$sendto", "$subject", "$message_all", $headers)) {
echo "OK";
}
else {
echo "Fout";
}
print " </td>";

case $datumjarig: // Hij/zij is jarig !!!
include("birthday.inc.php"); // html-kaart komt in $message_all.
$subject="Hartelijk gefeliciteerd!!!"; // Onderwerp e-mail.
print "<td>BD ";
// function(mail) met $sendto en birthday.inc.php
if(mail("$sendto", "$subject", "$message_all", $headers)) {
echo "OK";
}
else {
echo "Fout";
}
print " </td>";

}

print "\t</tr>\n";
}
// print "\t</tr>\n";
} // volgend email adres uit hetzelfde record, terug naar regel 76.

} // Volgend record, terug naar regel 64.

print "</table>\n";
print "end of line";
mysql_close($mysql_id);

?>


Ik wil dus regel 47,89 en 102 (3 blokken) vervangen door 1 regel en die functie in de header stoppen.

Beter? Mogelijk?
ok, bedankt. (regel 47 moest trouwens 77 zijn).

Dan kan ik dat beter doen voordat de feestdagen me boven het hoofd (code) groeien......

:)

Rene

p.s. da's een record in reactie(tijd)
je mag toch elke functie aanroepen in een zelfgemaakte functie... Anders zou je geen functie kunnen maken ...

Reageren