Class Notify_Email
{
protected $contents;
protected $values = array();
public static function _init()
{
global $config;
$sysEmail = $config['sysEmail'];
$sysCompany = $config['CompanyName'];
$mail = new PHPMailer();
$mail->CharSet = 'UTF-8';
//check for smtp
$e = ORM::for_table('sys_emailconfig')->find_one('1');
if($e['method'] == 'smtp'){
$mail->isSMTP();
$mail->Host = $e['host'];
$mail->SMTPAuth = true;
$mail->Username = $e['username'];
$mail->Password = $e['password'];
$mail->SMTPSecure = $e['secure'];
$mail->Port = $e['port'];
}
$mail->SetFrom($sysEmail, $sysCompany);
$mail->AddReplyTo($sysEmail, $sysCompany);
return $mail;
}
public static function _log($userid, $email, $subject, $message, $iid='0')
{
$date = date('Y-m-d H:i:s');
$d = ORM::for_table('sys_email_logs')->create();
$d->userid = $userid;
$d->sender = '';
$d->email = $email;
$d->subject = $subject;
$d->message = $message;
$d->date = $date;
$d->iid = $iid;
$d->save();
$id = $d->id();
return $id;
}
public static function _send($name,$to,$subject,$message,$uid='0',$iid='0'){
$mail = self::_init();
$mail->AddAddress($to, $name);
$mail->Subject = $subject;
$mail->MsgHTML($message);
global $_app_stage;
if($_app_stage == 'Demo'){
}
else{
$mail->Send();
}
//add log
self::_log($uid,$to,$subject,$message,$iid);
}
public static function _test()
{
$mail = self::_init();
$email = 'donotreply@bdinfosys.com';
$mail_subject = 'Test Email';
$name = 'Razib';
$body = 'Hello this is test email body';
$mail->AddAddress($email, $name);
$mail->Subject = $mail_subject;
$mail->MsgHTML($body);
$mail->Send();
}
public static function _otp($otp,$name,$email)
{
$mail = self::_init();
global $config;
$sysCompany = $config['CompanyName'];
$mail_subject = $sysCompany . ' OTP (One Time Password)';
$body = 'Your '.$sysCompany.' password has been verified and OTP is required to proceed further. Your current session OTP is '.$otp.' and only valid for this session. If you didn\'t login, please contact us immediately.';
$mail->AddAddress($email, $name);
$mail->Subject = $mail_subject;
$mail->MsgHTML($body);
$mail->Send();
}
}
Örnek bir kod buldum fakat kendime göre uyarlayamadım. Yardımcı olarak arkadaşlara şimdiden teşekkürler.
Örnek kod:
// formdan gelen verileri alıyoruz
$isim= $_POST['isim'];
$site= $_POST['site'];
$yorum=$_POST['yorum'];
// yollayacağımız sms mesajını burada hazırlıyoruz
$SMS_Text= urlencode( $yorum."yollayan:".$isim. " ". $site );
// NOT: Tüm bilgilerin uzunluğunuz 160 karakteri geçmeyecek şekilde olması için gerekli sunucu kontrollerini yapmayı unutmamak gerek.
// HTTP API'yi kullanmak için sabit kimlik bilgilerini değişkenlere atıyoruz.
$user = "kullanici_adiniz";
$password = "sifreniz";
$api_id = "xxxxxx";
$baseurl ="http://api.clickatell.com";
// SMS yollayacağımız cep no
$to = "+905321112233";
// HTTP API servisine session açmak için URL'yi hazırlıyoruz
$url = "$baseurl/http/auth?user=$user&password=$password&api_id=$api_id";
// HTTP API'ye bağlanıp oturum açmayı deniyoruz
$ret = file($url);
// Gelen cevabın ilk satırı oturum açıp açamadığımızı anlamamıza yarayacak Stringi içeriyor.
$sess = split(":",$ret[0]);
// Gelen cevap "OK" ise HTTP SMS API'ye verdiğimiz kimlikle oturumu açtığımızı anlıyoruz.
if ($sess[0] == "OK") {
// Gereksiz boşlukları siliyoruz.
$sess_id = trim($sess[1]);
// Burada SMS'i yollamak için gerekli URL'yi oluşturuyoruz.
$url = "$baseurl/http/sendmsg?session_id=$sess_id&to=$to&text=$SMS_Text";
// SMS'i HTTP API'ye geçerli oturumla tekrar bağlanarak yollamayı deniyoruz.
$ret = file($url);
$send = split(":",$ret[0]);
// Gelen cevap "ID" satırını içeriyorsa SMS'in yollandığını anlıyoruz
if ($send[0] == "ID")
{
// Mesaj yollandığında sunucuda log tutuyorsanız burada Loglama yapabilirsiniz.
}
else
{
// Mesaj yollanamadığında sunucuda log tutuyorsanız burada Loglama yapabilirsiniz.
}
}
else {
// Oturum açılamadığında sunucuda log tutuyorsanız burada Loglama yapabilirsiniz.
exit();
}
?>