Yii projesi içinde ki PhpMailer 5.2.21 güncelleme

Php üzerinde kullanılan phpmailer sistemlerinde 5.2.18 versiyonundan eski olan versiyonlarda uzaktan kod çalıştırılabilmesine olanak sağlayan bir açıklık olduğu tespit edilmesiyle birlikte 5.2.20 versiyonuna güncellenmesi ihtiyacı doğdu. Ertesi gün aynı açığın 5.2.20 versiyonunda da olduğu açıklandı ve 5.2.21 versiyonuna güncellenmesi gerektiği açıklandı.

Bunun için bu yazımda yii projemizde kullandığımız phpmailer paketini güncelleme işlemini göstereceğim. Açıklarla ilgili yazılara aşağıdaki linklerde erişebilirsiniz.

link1

link2

İlk olarak https://github.com/PHPMailer/PHPMailer/releases adresinden 5.2.21 versiyonunu indiriyoruz ve şıkıştırılmış halinden çıkartarak projemiz içerisinde  protected/extension/ klasörü içerisinde phpmailer klasörü olarak yerleştiriyoruz.

Daha sonra mail atma işlemini yaptığımız controller içinde aşağıdaki şekilde kullanımını sağlıyoruz.

<?php

require(__DIR__ . ‘/../extensions/mailer/phpmailer/PHPMailerAutoload.php’);

$mail = new PHPMailer;

$mail->isSMTP();                                                       // Set mailer to use SMTP
$mail->Host = ‘smtp.aaa.bbb’;                                // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                                       // Enable SMTP authentication
$mail->Username = ‘xxx@aaa.bbb’;                      // SMTP kullanıcı adınız
$mail->Password = ‘yyyyy’;                                     // SMTP şifreniz
$mail->SMTPSecure = ‘tls’;                                     // Enable TLS encryption, `ssl` also accepted
$mail->Port =port_no;                                                    // SMTP sunucusunun TCP portu

$mail->setFrom(‘xxx@aaa.bbb’,’yollayanın ismi’);
//$mail->addAddress(‘joe@example.net’, ‘Joe User’); // Add a recipient
//$mail->addAddress(‘ellen@example.com’); // Name is optional
$mail->AddAddress(‘xxx@aaa.bbb’);
//$mail->addReplyTo(‘info@example.com’, ‘Information’);
//$mail->addCC(‘cc@example.com’);
//$mail->addBCC(‘bcc@example.com’);

//$mail->addAttachment(‘/var/tmp/file.tar.gz’); // Add attachments
//$mail->addAttachment(‘/tmp/image.jpg’, ‘new.jpg’); // Optional name
$mail->isHTML(true);
$mail->CharSet = ‘UTF-8’; // Set email format to HTML

$mail->Subject = ‘e posta başlığı buraya yazılacak Subject kısmı’;
$mail->Body = ‘eposta metini buraya yazılacak  body kısmı’;
//$mail->AltBody = ‘This is the body in plain text for non-HTML mail clients’;

if(!$mail->send()) {
          $send=false;
          echo ‘Mail Gönderiminde hata oluştu.’;
           //echo ‘Mailer Error: ‘ . $mail->ErrorInfo;
} else {
            $send=true;
            echo ‘Mail gönderimi başarılı.’;
}

?>

 

Eğer klasörü düzgün kopyalamışsak, mail adımız ve şifremizde hata yoksa, SMTP adresinde ve portunda hata yoksa sorunsuz bir şekilde maili atabileceğiz.