PHP: PHPMailer SMTP ile E-posta Göndermek

PHPMailer SMTPPHP ile SMTP üzerinden e-posta göndermenin birden fazla çözümü var aslında.  Bu yazıda, php  mailer sistemlerin içinde en basit ve kullanılması en rahat olan PHPMailer kullanıyoruz.

 

Mail gönderim işlemi için neden PHPMailer kullandığımızın kısa bir özetini yapalım ;

PHPMailer Özellikleri

  • PHP ile mail gönderen en popüler class bu
  • Drupal, Joomla, Yii, WordPress gibi frameworklerin hepsine uyumlu çalışabiliyor
  • SMTP sunucu desteği ile, Hotmail, Gmail gibi e-mail hesapları üzerinden e-mail gönderimi yapılabiliyor
  • TOs, CCs, BCCs and REPLY-TOs bütün e-mail opsiyonları kullanılabiliyor
  • HTML / Text mail formatları destekliyor
  •  8bit, base64, binary ve yazdırılabilir (printable) encoding destekliyor
  • LOGIN, PLAIN, NTLM ve CRAM-MD5 authorizasyon mekanizmalarına uyumlu
  • PHP 5 ve üstü dilleri destekliyor
  • Hata ayıklama Error-handling özelliği mevcut
  • Maile dosya (attachment) eklenebiliyor
  • Geniş lokalizasyon imkanı var. (Türkçe dahil epey dil ve karakter destekliyor)

Örnek bir e-mail gönderimi


<?php
# PHP Mailer Classı import et
require_once("class.phpmailer.php");

# PHPMailer class tanımla
$mail = new PHPMailer();

// Classa SMTP başlat
$mail->IsSMTP();

// Test / Gerçek işlem
$mail->SMTPDebug = 2;

// SMTP Authentication aktif et
$mail->SMTPAuth = true;

//SMTP Server
$mail->Host = "host.smtpserver.com";

// Port SMTP Sunucu 25 / 587
$mail->Port = 25;

// SMTP kullanıcı adı
$mail->Username = "user@smtpserver.com";

// SMTP kullanıcı şifre
$mail->Password = "user_pass";

// gönderen hesap
$mail->SetFrom("from@yourdomain.com", "Gönderen isim");

// Mail konusu
$mail->Subject = "PHPMailer SMTP Testing";

// Mail içeriği
$body = "mailin içeriği, html kodları da olabilir;
$mail->MsgHTML($body);

// hedef adresi ekle
$to = "info@yourdomain.com";
$mail->AddAddress($to, "SMTP Test");
// Maili gönder
if(!$mail->Send())
{
echo "Mailer Hata: " . $mail->ErrorInfo;
}
else
{
echo "Mesaj başarıyla gönderildi!";
}
?>

 

Gmail ve Hotmail için PHPMailer SMTP özellikleri

Gmail için Ayarlar

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->Host = "smtp.gmail.com";
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->Port = 465;
$mail->Username = "username@gmail.com";
$mail->Password = "password";

Hotmail için ayarlar

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->Host = "smtp.live.com";
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->Port = 465;
$mail->Username = "username@hotmail.com";
$mail->Password = "password";

9 thoughts on “PHP: PHPMailer SMTP ile E-posta Göndermek

  • Merhaba

    tek anlayamadığım kısım, mail şifremizin kaynak kodda yer alması nasıl güvenli olabilir?

  • Evet korhan haklı olabilir… birde rakam yukseldikce toplu mail spam olarak algılanabilir mi acaba ?

  • @korhan, kaynak koddan kasıt PHP kodları ise, sıkıntı yok, zaten servis şifreleri HTML ile yazdırılmaz,

    bu mantıkla, database bağlantı şifrelerini de PHP kodlarıyla yazmak güvenli değil, hoş; yazmasak db kullanamayacağız.

  • Şimdi bunu databaseye nasıl gömeceğiz yani ftp de nasıl bir yere bunları kaydedeceğim … tam olarak bunu çözemedim

    Şimdiden teşekkürler

  • Merhaba acizane bir soru sormak istiyorum.konu çok detaylı anlatılmış öncellikle teşekkürler…
    Benim kafamı karıştıran şey ise şu.ben normal mail fonksiyonu ile dilediğim gibi heryere mail gönderebiliyordum serbest sunucularda.Ama bazı hosting şirketleri sadece smtp ile çalışıyor…Smtp sistminde smtp server kullanıcı adı ve şifreler giriyoruz.ordan aklıma hep şu geliyor,maili bu yolla sadece domain sahibi yani info@domain.com a mi gidebiliyor.? örnek olarak ben bir sitede şifremi unuttum uygulaması yaptım.site üzerinden otomatik üyeye bilgileri mail gönderebilirmiyim ?..$to=’uyeninemailadresi’ olabilirmi ?..o anki scripte istediğimiz mail adrsine mail gönderebilirmiyiz ?.yoksa bu script ile sadece domain sahibinemi mail gidebiliyor..burada kafam çok karışıyor…şimdiden teşekkürler…

  • Baya sıkıntı veren bir durumdu bilgiler çok işime yaradı teşekkürler.

Bir Cevap Yazın

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