Otomatik doğumgünü kutlamak

Unutkan biri misiniz? Akrabalarınızın, sevdiklerinizin, arkadaşlarınızın doğum gününü hep unutuyor musunuz? Ben unuturum genelde. Birkaç yıl önce Perl ile yazdığım ve mySQL’deki doğumgünü bilgilerini alan bir scriptle bu dertten az da olsa kurtuldum. Size de yarayabilir, deneyin. Scriptin çalışması için Perl-DBI modülü gerekiyor. Ancak Perl bilginiz varsa mySQL dışında bir veritabanı ya da belirli bir formattaki metin dosyası kullanabilirsiniz.

mySQL tablomuzun içeriği/görünümü basitçe aşağıdaki gibi olmalıdır.

mysql> select isim,email,dogumgunu from rehber limit 1;
+—————+——————+————+
| isim | email | dogumgunu |
+—————+——————+————+
| İsim CİSİM |isim@cisim.com.tr | 10/02/1977 |
+—————+——————+————+
1 row in set (0.00 sec)

Kutlama scriptimiz de aşağıdaki gibi olmalıdır.

# Otomatik dogum gunu kutlama scripti.
# A. Gurcan OZTURK

# Kutlama scriptimizin ayarlarını yapalım.
my $owner =” A. Gurcan Ozturk”; # Epostada görünecek isim
my $mail_prog = “/usr/sbin/sendmail”; # Sendmail binary
my $from = “gurcan@gurcanozturk.com”; # Eposta adresi
my $subject = “Dogum gununuz kutlu olsun.”; # Eposta konusu

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
$mon=$mon+1;
$len1= length($mon);
$len2= length($mday);

if ($len1 < 2 ) { $mon ="0"."$mon";} if ($len2 < 2 ) { $mday ="0"."$mday";} my $gun="$mday/$mon"; use DBI; use strict; my $dbh = DBI->connect(‘DBI:mysql:database_ismi:localhost’,’mysql_kullanici_adi’,’mysql_parolasi’,{ RaiseError => 1});
if (!$dbh) { die “Cannot connect to database” }

my $query = “SELECT isim,email FROM rehber WHERE dogumgunu=’$gun%'”;

my $sth = $dbh->prepare($query);
if (!$sth) { die “Illegal query: $query” };
$sth ->execute;
while (my @row = $sth->fetchrow_array) {

if ($row[1] ne “”)
{
open (MAIL, “|$mail_prog -t”);
print MAIL “From: $owner < $from>n”;
print MAIL “To: $row[0] < $row[1]>n”;
print MAIL “Cc: $owner < $from>n”;
print MAIL “Subject: $subjectn”;
print MAIL “nn”;
print MAIL ” Merhaba $row[0] ,n “;
print MAIL “Dogum gunun kutlu olsun,iyi ki dogmussun.n”;
print MAIL ” Daha nice saglikli ve mutlu yillar dileklerimle… nn$ownern”;
print MAIL ” http://www.gurcanozturk.comnn” ;
close(MAIL);
}
}
$sth->finish;

Scriptimiz hazır, birkaç test yaptıktan sonra scripti cron yardımıyla her gün bir kez çalıştırarak, o gün doğmuş arkadaşlarınızı otomatik olarak kutlayabilir, unutulmadıklarını gösterebilirsiniz. Cron sistemine aşağıdaki gibi bir satır ekleyin.

00 01 * * * /home/gurcanozturk/kutlama.pl

Not: Yılbaşında kutlama mesajını değiştirmeyi unutmayın 🙂

Leave a Reply


*