by A.Gökhan, M.Sc. | Mart 17 23:36
Merhaba!
Daha önceki yazılarda PHP dilinden mail() fonksiyon yapılandırmasını ve akabinde e-posta gönderme işlemlerini işlemiştir. Bunu hatırlamak isteyenler, PHP Dilinde E-Posta İşlemleri ve Yapılandırması[1] konusunu inceleyebilirler. Bu yazıda, SMTP protokülünü kullanarak e-posta gönderme işlemlerini ve buna neden ihtiyaç duyacağımızı kısaca anlatacağım.
SMTP, Simple Mail Transfer Protocol kelimelerinin ilk harflerinin kullanılmasıyla türetilmiş, e-posta göndermek için kullanılan bir protokoldür. PHP dilinde bulunan mail() fonksiyonunu kullanarak gönderilen e-postalar, gönderen kişinin belirli olmasından bağımsız, sunucu tarafından gönderilebilmektedir. Dolayısıyla pek güvenli değildir. Bu sebeple de genelde junk, spam, önemsiz klasörlerine gereksiz e-posta olarak düşerler. Ancak SMTP protokolü kullanılarak gönderilen e-postalar, gerçek bir e-posta hesabını kullanarak gönderim işlemini sağlar. Kullanıcı adı, şifre ve host bilgileri girmeksizin gönderilemez. Bu sebeple gelen kutusuna normal bir e-posta olarak düşer ve daha güven arz eder. Bu konu ile ilgili detaylı bilgiyi PHP.net sitesinde bulunan dökümantasyonu inceleyerek alabilirsiniz: PHP.net/Mail[2]
PHP dilini kullanarak SMTP e-posta gönderme işlemlerini basit bir şekilde yapmak için hazır bir kütüphane kullanacağız. Gerçekten her ince ayrıntının düşünüldüğü bu PHP kütüphanesini buradan[3] indirebilirsiniz.
İndirme işleminin ardından klasörün ana dizininde bulunan class.phpmailer.php veclass.smtp.php dosyaları, e-posta göndereceğiniz dizine kopyaladıktan sonra aşağıdaki kodlar ile e-posta gönderelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
require 'class.phpmailer.php'; $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPAuth = true; $mail->Host = 'smtp.domain.com'; $mail->Port = 587; $mail->Username = 'username@domain.com'; $mail->Password = 'phpservisi.com'; $mail->SetFrom($mail->Username, 'username'); $mail->AddAddress('info@phpservisi.com', 'Charles Martel'); $mail->CharSet = 'UTF-8'; $mail->Subject = 'Deneme mail başlığı'; $mail->MsgHTML('Deneme mail içeriği'); if($mail->Send()) { print "İşlem tamamlandı."; } else { print "Sorun meydana geldi! : " . $mail->ErrorInfo; } |
Yukarıdaki işlemler sonucunda info@phpservisi.com e-posta adresine, diğer bir deyişle Charles Martel isim ve soyisimli kullanıcıya Deneme içerikli bir e-posta göndermiş olduk. E-posta içeriğinde ek dosya göndermek isteseydik şu şekilde bir satır eklememiz gerekecekti:
1 |
$mail->AddAttachment('file/test.txt'); |
Birden fazla kullanıcıya e-posta göndermek için yine AddAddress fonksiyonunu kullanarak ekleme yapabiliriz. CC ve BCC alanlarına da birilerini eklemek istiyorsak, kodumuzu şu şekilde düzenleyebiliriz:
1 2 3 |
$mail->AddAddress('ek@kullanici.com', 'Ek Kullanıcı Adı'); $mail->AddCC('cc@kullanici.com', 'CC Kullanıcı Adı'); $mail->AddBCC('bcc@kullanici.com', 'BCC Kullanıcı Adı'); |
Görüşmek dileğiyle!
Source URL: https://www.phpservisi.com/php-dilinde-smtp-protokolu-ile-mail-gonderimi/
Copyright ©2025 Phpservisi.com unless otherwise noted.