Logo Nexotr.com N.

Nexotr - Anasayfa'a hoş geldiniz!

Topluluk forumlarımıza hoş geldiniz; kendi topluluğunuzu etkin bir şekilde yönetmeniz, harika fikirler ve hizmetlerimiz için bize katılabilirsiniz.

Kayıtlı Üye
Öncelikle herkese merhaba arkadaşlar. Ben "NEPCEN". Bu yazıda sizlere PHPMailer kullanımını anlatacağım. İyi okumalar!

Not: Kodların işlevlerini anlatarak yazıyorum. Acelesi olan en alttan tüm kodu alıp kullanabilir. Ayrıca kodları da konu sonundan indirebilirsiniz.


Öncelikle gerekli dosyaları çalışma sayfamıza eklememiz gerekli. Dosyaları buraya tıklayarak açılan GitHub sayfasından indirebilirsiniz.

Download butonuna tıklayınca “PHPMailer-master.zip” adındaki dosya bilgisayarınıza inecektir. Zip dosyasının içi resimdeki gibi olacak.

JZ0BaJ.png

Buradan işimize yarayacak klasörler “src” ve “language” klasörleridir. Bunları çalışma klasörümüze atıyoruz.
Php kodlarımızı yazmaya başlamak için bir dosya açıyoruz. İlk iş indirdiğimiz dosyaları sayfaya çağırmakta. Bunun için aşağıdaki kod satırlarını kullanıyoruz.

PHP Kod:
use PHPMailer\PHPMailer\PHPMailer;
use 
PHPMailer\PHPMailer\Exception;

require 
'src/Exception.php';
require 
'src/PHPMailer.php';
require 
'src/SMTP.php'

DİKKAT!
Dosyalarının konumlarını doğru yazdığınızdan emin olun.

Sayfanın devamına kodları yazmaya devam edebiliriz.
Öncelikle sınıfı başlatıyoruz.

PHP Kod:
$mail = new PHPMailer(true); 

Kodların devamında hata aldığımız takdirde işleri kolaylaştırmak için try-catch yapısını kullanıyoruz.


PHP Kod:
try {



} catch (
Exception $e) {
 
   echo $e->ErrorInfo// Hata oluşmuş ise ekrana yazdırmak için




Kodlarımız try bloğunun içine yazarak devam ediyoruz. Öncelikle server ayarlarını ayarlıyoruz.

PHP Kod:
//Server ayarları
 
   $mail->SMTPDebug 2                                      // Debug işlemlerini görmemiz için
 
   $mail->isSMTP();                                            
    $mail
->Host       'smtp1.example.com' // SMTP sunucumuzu belirtiyoruz
 
   $mail->SMTPAuth   true                                  
    $mail
->Username   'user@example.com'                    // SMTP kullanıcı adı
 
   $mail->Password   'secret'                              // SMTP şifre
 
   $mail->SMTPSecure 'tls'                                 
    $mail
->Port       587        
                           

DİKKAT!
Server ayarlarında bazı yerlerde kendinize göre değişiklik yapmanız gerekmektedir.
Mail gönderme işlemini gmail üzerinden yapacaksanız Host bölümünü “smtp.gmail.com”olarak değiştirmelisiniz. Maili gönderecek hesabın e-postasını Username ve şifresini Password bölümlerinde belirtmelisiniz.

Sırada maili gönderen kişiyi belirtmeye geldi. Bunun için aşağıdaki KOD satırını kullanıyoruz.

PHP Kod:
$mail->setFrom('MAİLİ GÖNDERECEK E-POSTA, MAİLİ GÖNDERENİN ADI); 

Devamında ise mailin gideceği adresi belirtmemiz gerekiyor. Bunu içinde şu kod satırlarını kullanabilirsiniz.

PHP Kod:
$mail->addAddress('MAİLİN GİDECEĞİ E-POSTA''MAİLİN GİDECEĞİ KİŞİNİN ADI');     
$mail
->addAddress('MAİLİN GİDECEĞİ E-POSTA');               // İsim kısmını yazmak zorunlu değildir. Yazmadığınız takdirde bu şekilde kullanın. 

Devam ediyoruzz. Eğer gönderdiğiniz maile yapılan yanıtları farklı bir e-posta hesabınıza gelmesini istiyorsanız aşağıdaki kodları ekleyebilirsiniz

PHP Kod:
$mail->addReplyTo('MAİL HESABI');  // Maile yapılan yanıtların gideceği e-posta hesabı 

Mail ile birlikte bir dosya da göndermek istiyorsanız bu kodları kullanıyoruz.

PHP Kod:
$mail->addAttachment('DOSYANIN KONUMU');         
$mail
->addAttachment('DOSYANIN KONUMU''DOSYANIZA VERMEK İSTEDİĞİNİZ İSİM');    // Dosyanın ismini değiştirirken bu kodu kullanın. 

Artık son satırlara geldik.

PHP Kod:
$mail->isHTML(true);             // Mail içinde HTML kullanabilmek için “true” değerini veriyoruz.
$mail->Subject 'MAİL KONUSU';
$mail->Body    'MAİL İÇERİĞİ';
$mail->Body     $icerik// Mail içeriğini bu şekilde değişkenden de alabilrsiniz.
$mail->AltBody 'HTML OKUNMADIĞI ZAMAN ÇIKACAK MAİL İÇERİĞİ'// Eklemeniz zorunlu değildir. 

Vee son nokta. Maili göndermek için kullandığımız kod satırı.
PHP Kod:
$mail->send();
echo 
'Mail Gönderildi.' // Kodları test ederken mailin gönderildiğini anlamanız için 

Kodlar tek parça şu şekilde gözükecek.
PHP Kod:
<?php
//Sayfaya gerekli dosyaları ekleme
use PHPMailer\PHPMailer\PHPMailer;
use 
PHPMailer\PHPMailer\Exception;

require 
'src/Exception.php';
require 
'src/PHPMailer.php';
require 
'src/SMTP.php';


$mail = new PHPMailer(true);               //Mail sınıfını başlattık

try {

//Server ayarları
$mail->SMTPDebug 2                        // Debug işlemlerini görmemiz için
$mail->isSMTP();                                            
$mail
->Host       'smtp1.example.com'               // SMTP sunucumuzu belirtiyoruz
$mail->SMTPAuth   true                                  
$mail
->Username   'user@example.com'             // SMTP kullanıcı adı
$mail->Password   'secret'                    // SMTP şifre
$mail->SMTPSecure 'tls'                                 
$mail
->Port       587;

//Mail Bilgileri
$mail->setFrom('MAİLİ GÖNDERECEK E-POSTA''MAİLİ GÖNDERENİN ADI');           //Maili gönderenin bilgileri

$mail->addAddress('MAİLİN GİDECEĞİ E-POSTA''MAİLİN GİDECEĞİ KİŞİNİN ADI');        // Maili alacak kişinin bilgileri    
$mail->addAddress('MAİLİN GİDECEĞİ E-POSTA');     // İsim kısmını yazmak zorunlu değildir. Yazmadığınız takdirde bu şekilde kullanın.

$mail->addReplyTo('MAİL HESABI');                 // Maile yapılan yanıtların gideceği e-posta hesabı


//Dosya Ekleme
$mail->addAttachment('DOSYANIN KONUMU');         
$mail
->addAttachment('DOSYANIN KONUMU''DOSYANIZA VERMKE İSTEDİĞİNİZ İSİM');       // Dosyanın ismini değiştirirken bu kodu kullanın.

//İçerik
$mail->isHTML(true);                        // Mail içeriğinde HTML kullanabilmek için “true” değerini veriyoruz.
$mail->Subject 'MAİL KONUSU';
$mail->Body    'MAİL İÇERİĞİ';
$mail->Body     $icerik          // Mail içeriğini bu şekilde değişkenden de alabilrsiniz.
$mail->AltBody 'HTML OKUNMADIĞI ZAMAN ÇIKACAK MAİL İÇERİĞİ'     // Eklemeniz zorunlu değildir.

//Gönder
$mail->send();
echo 
'Mail Gönderildi.'           // Kodları test ederken mailin gönderildiğini anlamanız için 

} catch (Exception $e) {
 
  echo $e->ErrorInfo      // Hata oluşmuş ise ekrana yazdırmak için
 
}
 
?>


ÇOK DİKKAT!!

Sık yaşanan sorunları yaşamamanız için bu kısmı dikkatli okuyunuz.
Öncelikle mail gönderme işlemi çoğunlukla localhost üzerinde çalışmaz. Denemek için bir hosting almanız gerekmektedir.

Gmail üzerinden mail göndermeyi planlıyorsanız hesabınızda bir ayarı değiştirmeniz gerekiyor.
Buraya tıklayarak  hesabınızla giriş yapın. Menüden “Güvenlik”e tıklayın. Alt tarafta “Daha az güveli uygulama erişimi”ni “Erişimi aç”a tıklayarak açın. Bu kadar!


Sonuna kadar okuduysanız çok teşekkür ederim. Umarım yardımcı olabilmişimdir. Başka konularda görüşmek üzere!
.php mail.php (Dosya Boyutu: 2.66 KB | İndirme Sayısı: 0)
Cevapla
Kayıtlı Üye
Teşekkür Ederim Yararlı Konu Smile
ExperTR Kalitenin Adresi
Cevapla
1 Ziyaretçi