SMTP (Simple Mail Transfer Protocol) ile e-posta göndermek oldukça yaygın bir ihtiyaçtır. PHP'nin PHPMailer kütüphanesi ise SMTP protokolünü kullanarak e-posta göndermeyi kolaylaştırır. Bu yazıda, PHPMailer kütüphanesi kullanarak SMTP mail göndermenin nasıl yapıldığını ve örnek kodları detaylı bir şekilde ele alacağız.
Adım 1: PHPMailer Kütüphanesinin Kurulumu
PHPMailer kütüphanesi Github üzerinden indirilebilir. İndirme işlemi tamamlandıktan sonra dosyaları bir klasöre kopyalayın Ardından, örnek kodlarda kullanacağımız sınıfı include edelim.
```php
use PHPMailer\\PHPMailer\\PHPMailer;
use PHPMailer\\PHPMailer\\Exception;
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';
require 'path/to/PHPMailer/src/Exception.php';
```
Burada, PHPMailer sınıfı, Exception sınıfı ve SMTP sınıfı include edilmiştir.
Adım 2: PHPMailer Sınıfı ve Nesnesinin Oluşturulması
Kütüphanenin kullanımı için öncelikle, PHPMailer sınıfından bir nesne oluşturmalıyız. Aşağıdaki örnekte, bir PHPMailer nesnesi oluşturarak başlamalıyız.
```php
$mail = new PHPMailer(true);
```
Burada, true parametresi kullanarak, SMTP hatalarını alabildiğimiz bir nesne oluşturuyoruz.
Adım 3: SMTP Sunucu Bağlantısının Yapılması
SMTP sunucusuna bağlandıktan sonra e-posta gönderimi yapabiliriz. Bunun için PHPMailer sınıfında SMTP özellikleri bulunur. Aşağıdaki örnekte, SMTP özelliklerini kullanarak bağlantıyı kuracağız.
```php
$mail->IsSMTP();
$mail->Host = 'smtp.domain.com';
$mail->SMTPAuth = true;
$mail->Username = 'user@domain.com';
$mail->Password = 'password';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
```
Burada, SMTP sunucusu (smtp.domain.com), kullanıcı adı (user@domain.com) ve şifresi (password) tanımlanmıştır. Güvenli iletişim için TLS (Transport Layer Security) kullanacağız.
Adım 4: Gönderici, Alıcı ve İçerik Bilgilerinin Tanımlanması
SMTP sunucusuna bağlandıktan sonra gönderici, alıcı ve e-posta içeriği bilgilerini tanımlamalıyız. Aşağıda, örnek bir e-posta için tanımlamalar yapacağız.
```php
$mail->SetFrom('sender@domain.com', 'Sender Name');
$mail->AddAddress('recipient@domain.com', 'Recipient Name');
$mail->Subject = 'Test Subject';
$mail->Body = 'This is a test email';
```
Burada, gönderici (sender@domain.com), gönderici adı (Sender Name), alıcı (recipient@domain.com), alıcı adı (Recipient Name), konu (Test Subject) ve e-posta içeriği (This is a test email) bilgileri tanımlanmıştır.
Adım 5: E-posta Gönderimi
Tüm bilgileri tanımladıktan sonra e-posta gönderim işlemini yapabiliriz. Aşağıdaki örnekte, send() metodunu kullanarak e-postayı gönderiyoruz.
```php
$mail->send();
echo 'Message has been sent';
```
Burada, send() metodu kullanarak e-posta gönderimi gerçekleştirilir ve mesaj yazdırılır.
Tüm bu adımların bir arada kullanıldığı bir örnek kod aşağıda verilmiştir:
```php
use PHPMailer\\PHPMailer\\PHPMailer;
use PHPMailer\\PHPMailer\\Exception;
require 'path/to/PHPMailer/src/