Phpmailer sınıfı ile smtp ile mail göndermek

İlgili Konular: Php     

Php kullanarak önceden mail fonksiyonu ile mail göndermek çok kolaydı. Günümüzde spam maillerin artması ile bu fonksiyon işe yaramaz hale geldi desek yeridir.

Php kullanıcılarının mail yollamak için kullanabilecekleri bir sınıf tasarlanmaya başlanmıştı ve daha sonra phpmailer sınıfı adını aldı. Üç dört sene öncesine kadar bu sınıfı kullanırken pek memnun değildim, ancak phpmailer sınıfını o kadar geliştirmişler ki gerçekten kullanmamak için insanın cahil olması gerek :) PHP programcıların mail yollanması konusunda daha uzun süre büyük yardımcısı olacağa benziyor.

Buradan phpmailer sınıfının internet sitesine ulaşılabilir ve oradan indirebilirsiniz.

Bu sınıfı indirip kullanmak için aşağıdaki yapılar kullanılabilir:

  • Profesyonel olarak SMTP ile mail göndermek:

require_once('../class.phpmailer.php');
$mail = new PHPMailer(true);

$mail->IsSMTP(); // sınıfı smtp ile kullanacağımızı tanımlıyoruz

try {
  $mail->Host= "mail.sitenizinadı.com"; // SMTP sunucu
  $mail->SMTPDebug = 2; // SMTP için sunucuyu test ediyoruz
  $mail->SMTPAuth= true;
  $mail->Host= "mail.sitenizinadı.com";
  $mail->Port       = 26; // Mail için port numarasını girmeliyiz.
  $mail->Username   = "isminiz@sitenizinadı.com"; // SMTP kullanıcı adınız
  $mail->Password   = "şifreniz"; // SMTP kullanıcı şifreniz
  $mail->AddReplyTo('isminiz@sitenizinadı.com', 'Cihan ARAT'); //mail adresiniz ve isminiz
  $mail->AddAddress('isim@siteadı.com', 'John Doe'); // Mail yollanacak adres ve ismi
  $mail->SetFrom('isminiz@sitenizinadı.com', 'Cihan ARAT');
  $mail->AddReplyTo('isminiz@sitenizinadı.com', 'Cihan ARAT');
  $mail->Subject = 'Aratmedya.com phpmailer kullanımı'; //Mailimizin konusu
  $mail->AltBody = 'İstersek bir alt açıklama girebiliriz.';
  $mail->MsgHTML(file_get_contents('icerik.html')); //HTML olarak mail yollamak istersek
  $mail->AddAttachment('images/phpmailer.gif');      // Dosya eklemek
  $mail->AddAttachment('images/phpmailer_mini.gif'); // dosya eklemek
  $mail->Send();
  echo "Mesaj gönderildi\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage();
} catch (Exception $e) {
  echo $e->getMessage();
}

  • Gmail kullanarak basit mail gönderimi:

require_once('../class.phpmailer.php');
$mail             = new PHPMailer();
$body             = ile_get_contents('icerik.html');
$body             = eregi_replace("[\]",'',$body);
$mail->IsSMTP();
$mail->Host       = "mail.alanadınız.com";
$mail->SMTPDebug  = 2;    
$mail->SMTPAuth   = true;
$mail->SMTPSecure = "tls";
$mail->Host       = "smtp.gmail.com";
$mail->Port       = 587;
$mail->Username   = "kullanıcıadı@gmail.com";
$mail->Password   = "şifre";
$mail->SetFrom('isminiz@sitenizinadı.com', 'Cihan ARAT');
$mail->AddReplyTo("name@yourdomain.com","First Last");
$mail->Subject    = "PHP mailer ile Aratmedya örneği ile basit gmail gönderimi";
$mail->AltBody    = "Maili görüntülemek için HTML görüntüleyicisi kullanınız";
$mail->MsgHTML($body);
$address = "mailgönderilecekisim@alanadı.com";
$mail->AddAddress($address, "Mail sahibinin ismi");
$mail->AddAttachment("images/phpmailer.gif");
$mail->AddAttachment("images/phpmailer_mini.gif");
if(!$mail->Send()) {
  echo "Hata: " . $mail->ErrorInfo;
} else {
  echo "Mail Yollandı!";
}

  • Gmail kullanarak profesyonel mail gönderimi:

require_once('../class.phpmailer.php');

$mail = new PHPMailer(true);
$mail->IsSMTP();
try {
  $mail->Host       = "mail.yourdomain.com";
  $mail->SMTPDebug  = 2;
  $mail->SMTPAuth   = true;
  $mail->SMTPSecure = "tls";
  $mail->Host       = "smtp.gmail.com";
  $mail->Port       = 587;
  $mail->Username   = "kullanıcıadınız@gmail.com";
  $mail->Password   = "şifreniz";
  $mail->AddReplyTo('isminiz@sitenizinadı.com', 'Cihan ARAT');
  $mail->AddAddress('isim@siteadı.com', 'John Doe'); // Mail yollanacak adres ve ismi
  $mail->SetFrom('isminiz@sitenizinadı.com', 'Cihan ARAT');
  $mail->AddReplyTo('isminiz@sitenizinadı.com', 'Cihan ARAT');
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
  $mail->AltBody = 'Maili görmek için HTML kullanınız.';
  $mail->MsgHTML(file_get_contents('icerikler.html'));
  $mail->AddAttachment('images/phpmailer.gif');      
  $mail->AddAttachment('images/phpmailer_mini.gif');
  $mail->Send();
  echo "Message Sent OK\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage();
} catch (Exception $e) {
  echo $e->getMessage();
}
   

Yorumlar

Abi bişey sorucm kullanıcı resim göndermesi için şimdi hang kodları yazmam lazm anlamadmda ? sadece kodları yazıp nereye koyucamı sölermsn ?

Basit olarak dosyanızı sunucuda bir alana yükleterek aşağıdaki kod alanında maile ek ekleyebilirsiniz:

$mail->AddAttachment('images/phpmailer.gif'); // Dosya eklemek $mail->AddAttachment('images/phpmailer_mini.gif'); // dosya eklemek

Mail atımı sonrasında da dosyanızı sildirebilirsiniz.

hocam çok teşekkür ederim kesinlikle haklısınız kendi siteme php mail fonksiyonunu kurdum anında server tarafından spam filtresine alınmış server çok saçma ama yapçak birşey yok elbette bu sayede günde ne kadar mail gönderebiliriz bilginiz varmı acaba bu sınırsız mı ?

Servar tarafında spam filtresine alınmanız gayet normal. Toplu mail veya sürekli mail yollayabilmeniz için mail server almanız gerekmektedir. Paylaşımlı sunucularda haklı olarak mail sınırlandırılması getiriliyor.

Kardeş bu kodları deniyorum ama mail felan gitmiyor. class larıda include ettim hatta denemelerde mail gönderildi diyor ama gitmiyor.

Hangi mail sunucusuna yollamaya çalıştınız? Tüm kodları aynen kopyaladınız ve gerekli yerleri değiştirdiniz mi?

Yeni yorum veya soru gönder

Bu alanın içeriği gizlenecek, genel görünümde yer almayacaktır.
  • PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • You may insert videos with [video:URL]

Biçimlendirme seçenekleri hakkında daha fazla bilgi


11 + 2 =
Basit matematik sorusunuz çözünüz. Örn; 1+3= 4