PTT E-Posta ile Kargo Takip Betiği

PTT’nin kargo durumunu belirten e-posta bildirimleri yok. Haliyle paketinizdeki değişikliklerden haberdar olmanız için sizin sürekli olarak takip yapmanız lazım, çünkü bilgilendirilmiyorsunuz. Ben de PHP’de ufak bir şey yapmak istedim bunun için, hayatımdan 15 dakikayı CURL ve fwrite(),fopen() için harcamış oldum, sonra onları birleştirip ufak bir betik yaptım. Betik şuan yurtdışı PTT gönderilerine ayarlı, barkod kısmına numaranızı, $to değişkenine posta adresinizi yazarak çalışıyor. ancak siz adres ve POST alanlarını değiştirerek bunu ister yurtiçi yaparsınız, ister başka siteler için kullanırsınız. Bunu sunucunuza atıp, belli bir sürede bir çalışmaya ayarlı bir crontab oluşturun, klasörde yazma izni vermeyi de unutmayın. Sayfada bir değişiklik yapıldığında size e-posta ile sayfanın yeni halinin kaynağını gönderecektir.

Basit oldu ama işlevli oldu bence :) İşinize yarar ya da sağına soluna minik hackler eklerseniz yorum olarak bırakın.

<?php
/*
 Dokuman    : pttfetch
 Tarih      : 03.Eyl.2010, 23:10:14
 Yazar      : Aranel Surion <[email protected]>
*/

function get_data($url)
{
 $ch = curl_init();
 $timeout = 5;
 curl_setopt($ch,CURLOPT_URL,$url);
 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
 curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
 curl_setopt($ch,CURLOPT_POSTFIELDS,'barkod=BURAYABARKODGELECEK');
 $data = curl_exec($ch);
 curl_close($ch);
 return $data;
}

$returned_content = get_data('http://www.ptt.gov.tr/tr/interaktif/sonuc-yd.php');
echo $returned_content;

if (!file_exists("pttfetch.txt")) {
 echo "Dosya bulunamadi. Olusturuluyor.";
 $fh = fopen('pttfetch.txt', 'w');
 fwrite($fh, $returned_content);
 fclose($fh);
}else{
 $i = file_get_contents("pttfetch.txt");
 if ($returned_content == $i){
 echo "AYNISI.";
 }else{
 echo "FARKLISI. Yeni dosya yaziliyor, bilgilendirme gonderiliyor.";
 if (!empty($returned_content)){
 $fh = fopen('pttfetch.txt', 'w');
 fwrite($fh, $returned_content);
 fclose($fh);
 $to = "[email protected]";
 $subject = "[Kargo Hareketi] Tasimaci durum degisikligi tespit edildi.";
 $body = "Durum degisikligi tespit edildi. Baglanti adresi: http://www.budasitenizinadresi.com/pttfetch.php  n Kargo bilgileri asagidadir: nn $returned_content";
 if (mail($to, $subject, $body)) {
 echo("<p>Mesaj gonderildi!</p>");
 } else {
 echo("<p>Mesaj basarisiz oldu...</p>");
 }

 }else{
 echo "BU DOSYA BOŞ. İşlem yapılmayacak.";
}}}

?>

6 yorum yapılmış

  1. adam ne diyor siz ne diyorsunuz. daha derdinizi ifade edemeden adam siz nasıl yardımcı olsun…

  2. Şuraya bir yere koymuştum ama. :D Eheh, PTT’yi arayıp sorabilirsiniz, ben PTT’de çalışmıyorum çünkü.

  3. ibrahim ince adına tokata kargo göndermiştim gönderdiğim kargonun nerede olduğunu öğrenmek istiyorm

  4. ekim ayının 26 sında bir kargo yolladım istanbul topkapı postahanesinde hala istediğim adrese gitmemiş şikayette bulunmak istiyorum çok zorda kaldım ben zaten karşıdaki alıcı alsaydı adres vermezdim mağdur durumdayım gereğinin yapılmasını istiyorum .

  5. Kristal küreme bir bakayım.. :D Tam olarak nerede çalışmadı kodlar?

  6. Dediklerinizi yapmama rahmen kodlari calistiramadim. Yardimci olur musunuz?

Yorum Yazın