Export to GitHub

tid - PHPGmailer.wiki


Giriş

Bu sayfada bu eklemiş olduğum class'ın nasıl kullanılacağını ve hangi komutla include edileceğini anlatacağım. Böylece projenin ilerleyen aşamalarında gmail servisi üzerinden bir mail göndermeniz gerektiğinde pek zorlanmadan bunu halledebileceğiz, örnek kodları aynen uygulamak veya ihtiyaçlarınıza göre bunları değiştirmek size kalmış.

Detaylar

Açık kaynak olarak bulduğumuz bu yazılım üç adet php dosyasından oluşuyor. Bunların isimleri class.phpgmailer.php, class.smtp.php ve phpmailer.lang-en.php. phpgmailer bize kullanım arayüzünü sağlayan class'ı sunuyor, içerisindeki çeşitli değişkenlere istediğimiz değerleri aktardıktan sonra send() fonksiyonunu çağırıyoruz ve gerisini class'ın iç mekanizması hallediyor, bunun için çeşitli kontrolleri yapıp gerekiyorsa error'leri döndürüyor, eğer her şey yolundaysa mail bağlantısı için smtp class'ını kullanıyor ve onunla fsockopen() fonksiyonu ile bir socket açıp fputs() fonksiyonu ile bu smtp bağlantısına gerekli verileri yolluyor. Son php ise hataların karşılıklarını tutan bir dil dosyası.

Kullanım için öncelikle bu class'ı kendi kodumuza include etmemiz gerekiyor, bunun için php tag'inin içerisinde şu fonksiyonu çağırıyoruz:

require_once('inc/phpgmailer/class.phpgmailer.php');

Bu class inc klasörünün içinde durduğundan projenin giriş klasöründe bu kullanılıyor, başka bir yerde kod yazmanız gerekirse göreli adresi değiştirmeniz gerekir.

Kullanım kolaylığı için ben bir fonksiyon yazdım ve ona verdiğim parametrelerle düz metin içeren mailleri gönderebiliyorum:

function sendMail($to, $subject, $body, $from) { $mail = new PHPGMailer(); $mail->Username = "turkisaretdili@gmail.com"; $mail->Password = "********"; $mail->From = $from; $mail->FromName = "$from"; $mail->Subject = $subject; $mail->AddAddress($to); $mail->Body = $body; if($mail->Send()) return 1; else return 0; }

Adlarından anlaşılabileceği gibi mailin kime gideceği, başlığının ne olacağı, içeriği, ve geliyor gibi gözükmesi istenen ismi parametre olarak veriyoruz, ve fonksiyon maili gönderiyor. Şifreyi açık olarak yazmıyorum, kendisini nereden bulabileceğinizi biliyorsunuz. Bu fonskiyon gönderimin başarılı olması durumunda 1, diğer koşulda 0 döndürüyor, kontrollerinizi istediğiniz gibi dışarıdan yapabilirsiniz. Bunun dışında hiç bu fonksiyonu kullanmadan da bu parametreleri yarattığınız PHPGmailer objesinde değiştirerek mail yollamayı da sağlayabilirsiniz. Örnek teşkil etmesi açısından, benim bu fonksiyonu kullanan kodum şu şekilde:

``` $from = $_REQUEST["email"]; $to = "turkisaretdili@gmail.com"; $subject = $_REQUEST["subject"]; $body = $_REQUEST["takemsg"];

if (sendMail($to, $subject, $body, $from)) { echo("

" . gettext("Mesaj başarıyla iletildi") . "

"); } else { echo("

" . gettext("Mesaj iletilemedi") . "

"); } ```