Wednesday, January 26, 2011

Web Developer Tools for Ubuntu

Веб хөгжүүлэгчдэд зориулсан дажгүй хэрэгсэл болох WDT суулган ашиглаж эхлэв. Суулгах зааврыг эндээс уншаарай.


цааш унших...

Tuesday, January 18, 2011

Та өөрөө Dropbox сервер хийж чадна

Сүүлийн үед Dropbox газар авч байх шиг байна. Мэдээгүй хүмүүст товч тайлбарлахад өөрийн файлаа нэтэд хадгалаад, хүссэн үедээ гар утас, компьютераасаа гэрээсээ, ажлаасаа хандаж ажиллах file share гэж ойлгож болно. Нэг үгээр хэлбэл онлайн файл банк :D
Гэхдээ Dropbox үнэгүй 2Gb зай олгоод нэмэлт талбар хэрэгтэй бол худалдаж авдаг тул манайхан хэрэглэхэд бас хэцүү.
Тэгвэл та нээлттэй эх (linux, openssh-server, rsync, inotify, lsyncd) ашиглаад үүнтэй адил онлайн үйлчилгээг өөрөө ч хийж чадна. Эндээс уншаарай, орчуулах гэснээ түвэгшээв :D Dropbox шиг болгоё гэвэл багахан GUI программ, хэрэглэгч төлбөрийн веб систем хийж холбох болно. Амжилт!


цааш унших...

Tuesday, January 04, 2011

Mastering PHP: Mail functions

Веб хөгжүүлэгчдийн өдөр тутам ашигладаг техникүүд дотор мэйлтэй холбоотой ажиллагаа яах аргагүй чухалд орно. Үүнийг интернэт программчлалын хамгийн түгээмэл хэлний нэг болох PHP дээр хэрэгжүүлсэн хэд хэдэн бэлэн санг ашиглан хэрэгжүүлье:

1. Imap, POP3 серверээс мэйл унших
 Эхлээд мэдээж мэйлтэй ажиллах нэмэлт санг суулгах хэрэгтэй. Үбүнтү систем дээр 

sudo apt-get install php5-imap  php5-cli 
гээд суулгачихна.


Олон файлд дахин дахин имэйл хаяг, нууц үг хийхгүй нь тулд config.inc.php файл үүсгэчихье:
config.inc.php file code:

< ?
$_mail_addr = 'your@gmail.com';
$_mail_pass = 'your_gmail_pass';
$_mail_in_serv = 'imap.googlemail.com';
$_mail_out_serv = 'smtp.googlemail.com';
$_to_address = 'test@gmail.com';
?>


Уг php5-imap нэмэлт дэхь стандарт мэйл функцээр серверээс имэйл уншиж үзэе:
read_gmail_basic.php file code:
< ? 
require('config.inc.php');
$mbox = imap_open("{".$_mail_in_serv.":993/imap/ssl/novalidate-cert}", $_mail_addr, $_mail_pass);

echo "\r\n imap error: ", imap_last_error(), "\r\n\r\n";

echo "Mailboxes\n";

$folders = imap_listmailbox($mbox, "{".$_mail_in_serv.":993}", "*");
if ($folders == false) {
    echo "Call failed
\n";
} else {
    foreach ($folders as $val) {
        echo $val . "
\n";
    }
}
echo "headers in Inbox\n";
$headers = imap_headers($mbox);
if ($headers == false) {
    echo "Call failed
\n";
} else {
    foreach ($headers as $val) {
        echo $val . "
\n";
    }
}
imap_close($mbox);
?>

Дээрх код нь мэйл доторх хавтасуудыг харуулаад, Inbox доторх бүх мэйлүүдийн толгойг хэвлэж харуулна. Хэрвээ уг мэйл хаягт их олон мэйл байгаа бол бүгдийг нь хэвлэх нь байна, тийм болохоор имэйлүүдээс шүүж, ялгаж авах хэрэгцээний үүднээс дараах жижиг классыг ашиглаж үзье:


2. Imap, POP3 серверээс мэйл шүүж унших
MailParser class эндээс татаж авна. Ингээд дахиад gmail хаягаасаа нээгээгүй буюу шинэ мэйлүүдээ уншаад үзье: 

read_gmail_filter.php
< ?
require('config.inc.php');
require_once(dirname(__FILE__) . '/MailParser.php');

$obj = new MailParser("{".$_mail_in_serv.":993/imap/ssl/novalidate-cert}", $_mail_addr, $_mail_pass);

//$obj->pasrseMessagesByRecDate('01-03-2011');

//$obj->pasrseMessagesByFromAddress('abc.xyz@gmail.com', true);
//$obj->pasrseMessagesBySubject('test4');
$obj->pasrseUnreadMessages();
//$obj->pasrseMessageById(4, true);

// Getting result
$result = $obj->getResult();

// Retrieving the message information from $result
foreach($result as $msg) {
    
    $palinText        = $msg['plainBody'];
    $html            = $msg['htmlBody'];
    $header            = $msg['headers'];
    $attachments    = $msg['attachments'];

    //print_r($palinText);
    //print_r($html);
    print_r($header);
}
?>

Дээрх код доторхи pasrseMessagesByRecDate, pasrseMessagesByFromAddress, pasrseMessagesBySubject гэх мэт хайлт хийх функцүүдээс аль тохиромжтойгоо ашиглаарай.
Гэхдээ их олон имэйл дотроос хайлт хийхэд бага зэрэг удаж байгаа тал ажиглагдсан.

3. SMTP SSL/TSL сервер ашиглаж мэйл илгээх
Мэйл функц дотроос хамгийн их ашигладаг нь мэдээж мэйл илгээх хэсэг. Гэхдээ php generated mail илгээхэд ихэвчлэн spam box, junk folder руу орчихоод байдаг шүү дээ. Тэгвэл жинхэнэ (valid mail address) ашиглавал ингэхгүй. PHPMailer гээд бас л түгээмэл ашигладаг класс ашиглая. Эндээс татаж аваарай. Энэ жишээнд v5.1 хувилбарыг ашиглав.

send_gmail.php file code:
< ?
require('config.inc.php');
error_reporting(E_STRICT);
date_default_timezone_set('Asia/Ulaanbaatar');
require_once('class.phpmailer.php');

$mail             = new PHPMailer();
$body             = 'test body'; 
$body             = eregi_replace("[\]",'',$body);
$mail->IsSMTP();
$mail->Host       = "mail.yourdomain.com";
$mail->SMTPDebug  = 2;              
$mail->SMTPAuth   = true;            
$mail->SMTPSecure = "ssl";           
$mail->Host       = $_mail_out_serv;
$mail->Port       = 465;          
$mail->Username   = $_mail_addr;
$mail->Password   = $_mail_pass;
$mail->SetFrom($_mail_addr, 'Your name');
$mail->Subject    = "Test Subject via smtp (Gmail), basic";
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!";
$mail->MsgHTML($body);
$mail->AddAddress($_mail_to_addr, "First last");

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}
?>

За ингээд боллоо доо! :) Гэхдээ ингэж сурчихаад спам илгээгээд, зар тараагаад байв даа гэсэн :D Сүүлийн үед мэйлээ нээх тоолонд 1-2 зар сурталчилгаа бүхий мэйл бол найдвартай байх болсон шүү, spam гэж мэдээлж л орхидог


цааш унших...

blogger templates | Make Money Online