PHPMailer Sınıfı ile Gmail Üzerinden E-Posta Gönderimi

Öncelikle bu sınıfı yazana bir teşekkür edelim 🙂 Daha sonra ise ilk olarak sınıfı indireceğiniz adresi vereyim;

https://code.google.com/a/apache-extras.org/p/phpmailer/

Burada tahmin edebileceğiniz gibi “downloads” sekmesinden en çok indirileni indiriyoruz.Not: Eğer indirme adresinde ssl’den dolayı hata alırsanız “yine de devam et” diyerek indirme işlemine devam edin.

İndirdiğiniz zip dosyasını açtığınızda bir sürü dosya ile karşılaşacaksınız. Onların içinden şu 2 dosyayı alın ve zip’i kapatın.

– class.phpmailer.php
– class.smtp.php

Ben herhangi bir form hazırlamadan kullanımını göstereceğim. Daha sonra demosunu incelediğiniz şeyin dosyalarını bu sayfanın en altından indirebileceğinizi unutmayın 🙂

Adım Adım E-Posta Gönderme İşlemi

Evet ilk olarak bir php dosyası oluşturalım (yukarıdaki 2 dosya ile aynı yerde olsun).. Ve daha sonra içini açıp kodlarımızı yazmaya başlayalım;

include "class.phpmailer.php";

Sınıf dosyasını dahil ettik.

$mail = new PHPMailer();

PHPMailer sınıfını başlattık.

$mail->IsSMTP();

SMTP kullanarak e-posta göndereceğimizi söyledik.

$mail->SMTPAuth = true;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->Username = '[email protected]';
$mail->Password = 'ŞİFRE';

Gmail için ayarlarımızı burada yapılandırıyoruz. Sizin yapmanız gereken tek şey, maili gönderecek hesabın bilgilerini girmek o kadar.

$mail->SetFrom($mail->Username, 'Tayfun Erbilen');

E-postayı kimin gönderdiğini tanımlıyoruz. E-posta -> Ad soyad şeklinde.

$mail->AddAddress('[email protected]', 'gönderilen kişinin adı soyadı');

Kime e-posta göndermek istiyorsak e-posta -> adsoyad şeklinde ekliyoruz.

$mail->CharSet = 'UTF-8';

Karakter serini global olan utf8 olarak ayarlıyoruz.

$mail->Subject = 'E-POSTA KONUSU';

Konuyu belirliyoruz.

$content = '<div style="background: #eee; padding: 10px; font-size: 14px">Bu bir test e-posta\'dır..</div>';
$mail->MsgHTML($content);

E-posta içeriğini belirliyoruz. İster bir değişkenden alabiliriz, istersekte file_get_contents() ile bir dosyayı okuyup gönderebiliriz, tercih sizin.

if($mail->Send()) {
    // e-posta başarılı ile gönderildi
} else {
    // bir sorun var, sorunu ekrana bastıralım
    echo $mail->ErrorInfo;
}

Gönderilip gönderilmediğini kontrol ediyoruz.

Sonuç olarak yazdığımız kodların tamamı şu şekilde;

<?php

include 'class.phpmailer.php';
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->Username = '[email protected]';
$mail->Password = 'ŞİFRE';
$mail->SetFrom($mail->Username, 'Tayfun Erbilen');
$mail->AddAddress('[email protected]', 'gönderilen kişinin adı soyadı');
$mail->CharSet = 'UTF-8';
$mail->Subject = 'E-POSTA KONUSU';
$content = '<div style="background: #eee; padding: 10px; font-size: 14px">Bu bir test e-posta\'dır..</div>';
$mail->MsgHTML($content);
if($mail->Send()) {
    // e-posta başarılı ile gönderildi
} else {
    // bir sorun var, sorunu ekrana bastıralım
    echo $mail->ErrorInfo;
}
?>

Sonuç olarak bir sorun yok ise güzel bir şekilde e-posta gönderme işlemini yapacak.. Hadi test edelim..

PHPMailer Sınıfı ile Gmail Üzerinden E-Posta Gönderimi

Ek dosya gönderimi

Mail içinde herhangi bir dosya göndermek isterseniz şu şekilde eklemeniz yeterli;

$mail->AddAttachment('prototurk.png');

Burada prototurk.png yerine göndereceğiniz herhangi bir dosyanın yoluda gelebilir 🙂

https://i2.wp.com/i.imgur.com/ewPNKQL.png?w=840

Çoklu e-posta gönderimi

Bir e-postayı birden fazla kişiye göndermek için (her yeni kişi için) AddAdress() metodunu kullanabilirsiniz. Ancak buna ek olarak AddBCC ve AddCC metodlarıda vardır..

BCC = Buraya yazılan adresler diğer gönderilen adreslerde gözükmez, bir nevi gizli gönderici diyebiliriz.

$mail->AddAddress('EPOSTA_ADRESİ', 'Ad Soyad');
$mail->AddBCC('EPOSTA_ADRESİ', 'Ad Soyad');
$mail->AddCC('EPOSTA_ADRESİ', 'Ad Soyad');

İNDİR

http://yadi.sk/d/cip-r9lr8rJSuNot: Sınıfın düzgün şekilde e-posta gönderme işlemi yapabilmesi için sunucunuz da SMTP aktif olmalıdır.

Bir Cevap Yazın