PHP MAİL GÖNDERME – PHP MAİLER CLASS

Bu makelede sizlere php ile e-posta gönderme yönteminden bahsedeceğim. PHP de 2 farklı yöntem ile mail gönderebiliyoruz. 

PHP’nin mail() fonksiyonu ile mail gönderebiliriz ancak bu yöntem güvenli değil. mail() fonksiyonu ile gönderilen maillerde e-posta adresi zorunluluğu olmadı için gönderdiğiniz mailler alıcı tarafında spam(Önemsiz) olarak algılanacaktır. 

SMTP protokolünün daha güvenli olmasının sebebi mail gönderirken kullanıcı adı ve şifre doğrulaması zorunluluğudur. 

Sizlere SMTP ile mail göndermeyi anlatacağım. Makalenin başlığında olduğu gibi PHPMailer isimli sınıfı kullanacağız. 

PHPMailer sınıfına ait tüm kaynak dosyaları bu makalenin alt tarafında bulabilirsiniz.

 

İndirdiğiniz PHPMailer sınıfına ait kullanacağımız dosyalar ; 
1. class.phpmailer.php 
2. class.smtp.php 
3. class.pop3.php 

Öncelikle bu 3 dosyayı projeyi yapacağımız klasöre kopyalamamız gerekiyor. 

Kodları direkt yazıyorum ve aşağıda tek tek açıklamalarını da vereceğim. 


reuqire("class.phpmailer.php");

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true; // SMTP_kullaniciadi ile giriş yapılmayacaksa false olması gerekli.
$mail->SetLanguage("tr", "language/");
$mail->CharSet = "utf-8";
$mail->Host = "Mail Sunucumuz";
$mail->Username = "SMTP Kullanıcı Adımız";
$mail->Password = "SMTP Kullanıcı Şifremiz";
$mail->From = "Maili Gönderen Adres";
$mail->FromName = "Maili Gönderen İsim"; // Adınız
$mail->AddAddress("Maili Göndereceğimiz Adres"); // mail gideceği adres
$mail->Subject = "Maili Konusu";
$mail->IsHTML(true);
$mail->Body = "Mail İçeriği";

if (!$mail->Send()) {
echo "Hata ----->>>>> " . $mail - ErrorInfo;
}

echo "Success";

 

Yukarıda ki kodların açıklamaları

 


reuqire("class.phpmailer.php");
$mail = new PHPMailer();

1. Satırda ki kod ile phpmailer sınıfımızı projeye dahil ediyoruz. 2. Satırda ki kod ile phpmailer sınıfımızı başlatıyoruz. 


$mail->IsSMTP();
$mail->SMTPAuth = true;

PHPMailer sınıfımıza e-posta’yı SMTP protokolüyle göndereceğimizi belirttik. 


$mail->SetLanguage("tr", "language/");
$mail->CharSet = "utf-8";

Göndereceğimiz e-postanın dilini ve karakter setini ayarladık. 


$mail->Host = "Mail Sunucumuz";
$mail->Username = "SMTP Kullanıcı Adımız";
$mail->Password = "SMTP Kullanıcı Şifremiz";
$mail->From = "Maili Gönderen Adres";
$mail->FromName = "Maili Gönderen İsim"; // Adınız

SMTP sunucu adı veya ip adresi, kullanıcı adı, şifre, gönderen adres ve gönderilen mailde gönderen kişi olarak görünecek isim bilgileri bu alanda yazıyoruz. 


$mail->AddAddress("Maili Göndereceğimiz Adres"); // mail gideceği adres
$mail->Subject = "Maili Konusu";
$mail->IsHTML(true);
$mail->Body = "Mail İçeriği";

Bu kısımda maili göndereceğimiz adresi, mailin konusunu ve içeriği yazıyoruz. Aynı zamanda göndereceğimiz mailin içeriğinde html karakterleri kullanacaksak eğer “$mail->IsHTML(true);” kullanmamız gerekiyor. 


if (!$mail->Send()) {
echo "Hata ----->>>>> " . $mail - ErrorInfo;
}

echo "Success";

En son olarak gönderim işlemini tamamlıyoruz ve e-posta gönderim durumunun başarılı ya da başarısız olduğu durumlarda ne yapacağını belirtiyoruz. 

Önemli Notlar;

1. SMTP portu her zaman 587 olmayabilir. Sunucunuz smtp için hangi portu kullanıyorsa onu ayarlamanız gerekiyor. 

2. SMTP ile mail gönderimini GMail üzerinden yapacaksanız eğer “$mail->SMTPSecure = ‘tls’;” kodunu eklemeniz gerekiyor. 

3. E-posta ile dosya eki göndermek istiyorsanız eğer “$mail->AddAttachment(‘ekli_dosya_klasoru/resim.jpg’);” kodunu eklemeniz gerekiyor. 

 

PHP Mailer Class İndir Örnek Proje İndir

“PHP MAİL GÖNDERME – PHP MAİLER CLASS” için 4 yorum

  1. ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: Name or service not known (0)
    SMTP Error: Could not connect to SMTP host.

    Hocam sürekli bu hatayı alıyorum. İnternette tarama yapmama rağmen çözümü bulmadım. Nerede hata yapıyorum anlamadım

    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPDebug = 1;
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = ‘SSL’;
    $mail->Host = “mail.recetemonline.tr.ht”;
    $mail->Port = 465;
    $mail->IsHTML(true);
    $mail->SetLanguage(“tr”, “phpmailer/language”);
    $mail->CharSet =”utf-8″;
    $mail->Username = “info@recetemonline.tr.ht”;
    $mail->Password = “sifrem”;
    $mail->SetFrom(“info@recetemonline.tr.ht”, “recetemonline”);
    $mail->AddAddress(“serkangul163@hotmail.com”);
    $mail->Subject = “Mesaj Basligi”;
    $mail->Body = “Mesaj icerigi ve metni”;

    1. $mail->Host = “mail.recetemonline.tr.ht”;
      bu satırda mail sunucu olarak adres değilde mail sunucunun ip adresini yazıp deneyebilir misiniz?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir