İçeriğe geç

phpmailer

PHPMailer ile SMTP ile Mail Göndermek (Örnek Gmail İle)

Merhabalar bu yazımda PHPMailer kullanarak harici  bir mail  sunucusu ile nasıl  mail  gönderimi  yapacağımızı  göstereceğim. Bir framework kullanmadan bu  işlemi  yapmak  bizi  belki  biraz  uğraştıra bilir ama bu  işlemi  PHPMailer kullanarak yapmak  gayet kolay olacak.

Kullandığınız sunucu mail hizmetinde yetersiz kalıyor yada mail işlemleri için kullanamıyorsanız başka bir  sunucu ile mail  işlemlerini  yapabilirsiniz.Bunun için Mail  sunucusunun host adresini , kullanıcı adı  ve şifre bilgilerine  sahip olmanız  gerekiyor. Bu bilgilere sahipsek Kodlamaya başlayalım.

[php]
<?php

require_once(‘class.phpmailer.php’);

$mail= new PHPMailer();
$mail->CharSet =’utf-8′;
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->SMTPAuth = true;
$mail->Host = ‘mailsunucuadresi’;
$mail->Port = 25;
$mail->Username = ‘mailkullanıcıadı’;
$mail->Password = ‘mailkullanıcışifresi’;

$body=’html mail içeriği’;

$mail->SetFrom(‘gönderenadres’,’gönderenadı’);
$mail->AddAddress(‘alıcıadres’,’alıcıadı’);
$mail->Subject = ‘Mail konusu’;
$mail->AltBody = ‘text mesaj’;
$mail->MsgHTML($body);

if(!$mail->Send()) {
echo ‘Mail Gönderilemedi’;
} else {
echo ‘Mail Gönderildi’;
}
?>
[/php]

Bu kodlarda daha önce yazdığım PHPMailer yazısından birkaç  farkı  var onları belirteyim .

[php]
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->SMTPAuth = true;
$mail->Host = ‘mailsunucuadresi’;
$mail->Port = 25;
$mail->Username = ‘mailkullanıcıadı’;
$mail->Password = ‘mailkullanıcışifresi’;
[/php]

 

[php]$mail->IsSMTP();[/php]

fonksiyonunu çağırarak SMTP kullanarak mail göndereceğimizi belirtiyoruz.

[php]$mail->SMTPAuth = true;[/php]

ile Mail sunucusunda oturum açacağımızı belirtiyoruz.

[php] $mail->Host = ‘mailsunucuadresi’;
$mail->Port = 25;
$mail->Username = ‘mailkullanıcıadı’;
$mail->Password = ‘mailkullanıcışifresi’;
[/php]

Bu fonksiyonlar ile de bağlantı kurulacak olan mail sunucusunu  sunucunun kullandığı portu ve oturum bilgilerini belirliyoruz.

Gmail  Üzerinden Mail  GÖnderimi yapmak için ise kodalamamız şu şekilde olmalı:

[php]

<?php

require_once(‘class.phpmailer.php’);

$mail=new PHPMailer();
$mail->CharSet =’utf-8′;
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->SMTPSecure = ‘ssl’;
$mail->SMTPAuth = true;
$mail->Host = ‘smtp.gmail.com’;
$mail->Port = 465;
$mail->Username = ‘gmail kullanıcı adı’;
$mail->Password = ‘gmail kullanıcı şifresi’;

$body=’html mail içeriği’;

$mail->SetFrom(‘gönderenadres’,’gönderenadı’);
$mail->AddAddress(‘alıcıadres’,’alıcıadı’)
$mail->Subject = ‘Mail konusu’;
$mail->AltBody = ‘text mesaj’;
$mail->MsgHTML($body);

if(!$mail->Send()) {
echo ‘Mail Gönderilemedi’;
} else {
echo ‘Mail Gönderildi’;
}
?>
[/php]

PHPMailer

Merhabalar.Daha önce php  ile nasıl mail göndereceğimizden bahsetmiştim ve php de mail göndermek için hazırlanmış frameworklerin olduğundan bahsetmiltim .  Bu yazımda bu frameworklerden en çok önerileni olan PHPmailer ın kullanımından bahsedeceğim .

PHPmailer ı  kullanmak için buradaki  adresten donwload sekmesini ile uygun olan sürümü  indirmelisiniz. Zip teki dosyaları projenizin dizinine attıktan sonra aşağıdaki gibi bir kodlama ile mail gönderimi yapabilirsiniz.

[php]

<?php

include_once(‘class.phpmailer.php’);

$mail=new  PHPmailer();

$mail->CharSet=’utf-8′;

$body='<h1>Başlık Metni</h1>;

mail içeriği ‘;

$mail->SetFrom(‘gö[email protected] com’,’Gönderen ismi’);

$adress=’alıcı@adres.com’;

$mail->Subject=’mail konusu’;

$mail->AltBody=’text olarak mail’;

$mail->MsgHTML($body);

if(mail->Send()){

echo ‘Hata:Mail gönderilemedi’;

}else{

echo ‘Mail gönderildi’;

}

?>

[/php]

Burada ilk önce sayfamızda PHPmailer class ını kullanmak için include ediyoruz ve $mail değişkenine PHPmailer class ını tanımlıyoruz.

CharSet ile mailin karakter setini belirliyoruz.$body değişkeni ile mailin html içeriğini yazıyoruz.SetFrom ile mailin gönderen bilgisini oluşturuyoruz.AddAdress ile alıcı  adresi ekliyoruz.AltBody değişkeninde ise html mail göndermeyi desteklemeyen sistemlerde html mesaj yerine gönderilecek olan text metni belirliyoruz.

İyi çalışmalar.