PHP ile mail göndermek için mail() fonksiyonu kullanabileceğinizi anlatmıştık. Bu fonksiyon sistem üzerindeki mail sunucu tarafından göndermektedir. Farklı bir mail sunucudan mail göndermek için smtp üzerinden göndermek gerekir. PHPMailer, smtp üzerinden gönderebileceğiniz bir php eklentisidir. Kurulumu ve kullanımı oldukça kolaydır. https://github.com/PHPMailer/PHPMailer sayfasından indirebilirsiniz. Kurulum ve kullanım kodları şu şekildedir.
Standart kullanım;
[code]<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require ‘PHPMailer/src/Exception.php’;
require ‘PHPMailer/src/PHPMailer.php’;
require ‘PHPMailer/src/SMTP.php’;
$mail = new PHPMailer(true);
$mail->setLanguage(‘tr’);
$mail->CharSet = “utf-8”;
$mail->isSMTP();
$mail->Host = ‘mail.example.com’;
$mail->Port = ‘587’;
$mail->Username = ‘[email protected]’;
$mail->Password = ‘Mail şifresi’;
$mail->SMTPAuth = true;
$mail->SMTPSecure = ‘tls’;
$mail->setFrom(‘[email protected]’,’Example – Admin’);
$mail->addAddress(‘[email protected]’);
$mail->isHTML(false);
$mail->Subject = ‘Test İleti’;
$mail->Body = ‘Merhaba, Bu ileti test amaçlı iletilmiştir. Bilginize.’;
if($mail->send())
{
echo(‘Mesaj gönderildi.’);
}
else
{
echo(‘Mail gönderilemedi.’);
}
?>[/code]
HTML ileti kullanımı;
[code]<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require ‘PHPMailer/src/Exception.php’;
require ‘PHPMailer/src/PHPMailer.php’;
require ‘PHPMailer/src/SMTP.php’;
$mail = new PHPMailer(true);
$mail->setLanguage(‘tr’);
$mail->CharSet = “utf-8”;
$mail->isSMTP();
$mail->Host = ‘mail.example.com’;
$mail->Port = ‘587’;
$mail->Username = ‘[email protected]’;
$mail->Password = ‘Mail şifresi’;
$mail->SMTPAuth = true;
$mail->SMTPSecure = ‘tls’;
$mail->setFrom(‘[email protected]’,’Example – Admin’);
$mail->addAddress(‘[email protected]’);
$mail->isHTML(true);
$mail->Subject = ‘Test İleti’;
$mail->Body = ‘Merhaba,<br /><br />Bu ileti test amaçlı iletilmiştir.<br /><br />Bilginize.’;
if($mail->send())
{
echo(‘Mesaj gönderildi.’);
}
else
{
echo(‘Mail gönderilemedi.’);
}
?>[/code]
try-catch kullanım;
[code]<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require ‘PHPMailer/src/Exception.php’;
require ‘PHPMailer/src/PHPMailer.php’;
require ‘PHPMailer/src/SMTP.php’;
$mail = new PHPMailer(true);
$mail->setLanguage(‘tr’);
$mail->CharSet = “utf-8”;
$mail->isSMTP();
$mail->Host = ‘mail.example.com’;
$mail->Port = ‘587’;
$mail->Username = ‘[email protected]’;
$mail->Password = ‘Mail şifresi’;
$mail->SMTPAuth = true;
$mail->SMTPSecure = ‘tls’;
$mail->setFrom(‘[email protected]’,’Example – Admin’);
$mail->addAddress(‘[email protected]’);
$mail->isHTML(true);
$mail->Subject = ‘Test İleti’;
$mail->Body = ‘Merhaba,<br /><br />Bu ileti test amaçlı iletilmiştir.<br /><br />Bilginize.’;
try
{
if($mail->send())
{
echo(‘Mesaj gönderildi.’);
}
else
{
echo(‘Mail gönderilemedi.’);
}
}
catch (Exception $e)
{
echo(‘Mesaj gönderilemedi. Mailer Hatası: ‘.$mail->ErrorInfo);
}
?>[/code]
HTML içerik ileti kullanımı;
[code]<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require ‘PHPMailer/src/Exception.php’;
require ‘PHPMailer/src/PHPMailer.php’;
require ‘PHPMailer/src/SMTP.php’;
$mail = new PHPMailer(true);
$mail->setLanguage(‘tr’);
$mail->CharSet = “utf-8”;
$mail->isSMTP();
$mail->Host = ‘mail.example.com’;
$mail->Port = ‘587’;
$mail->Username = ‘[email protected]’;
$mail->Password = ‘Mail şifresi’;
$mail->SMTPAuth = true;
$mail->SMTPSecure = ‘tls’;
$mail->setFrom(‘[email protected]’,’Example – Admin’);
$mail->addAddress(‘[email protected]’);
$mail->isHTML(true);
$mail->Subject = ‘Test İleti’;
$mail->msgHTML(file_get_contents(‘contents.html’));
if($mail->send())
{
echo(‘Mesaj gönderildi.’);
}
else
{
echo(‘Mail gönderilemedi.’);
}
?>[/code]
Dosya ekli ileti kullanımı;
[code]<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require ‘PHPMailer/src/Exception.php’;
require ‘PHPMailer/src/PHPMailer.php’;
require ‘PHPMailer/src/SMTP.php’;
$mail = new PHPMailer(true);
$mail->setLanguage(‘tr’);
$mail->CharSet = “utf-8”;
$mail->isSMTP();
$mail->Host = ‘mail.example.com’;
$mail->Port = ‘587’;
$mail->Username = ‘[email protected]’;
$mail->Password = ‘Mail şifresi’;
$mail->SMTPAuth = true;
$mail->SMTPSecure = ‘tls’;
$mail->setFrom(‘[email protected]’,’Example – Admin’);
$mail->addAddress(‘[email protected]’);
$mail->isHTML(true);
$mail->Subject = ‘Test İleti’;
$mail->Body = $ileti;
$mail->addAttachment(‘image.jpg’);
if($mail->send())
{
echo(‘Mesaj gönderildi.’);
}
else
{
echo(‘Mail gönderilemedi.’);
}
?>[/code]
Upload metodu ile dosya ekli ileti kullanımı;
[code]<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require ‘PHPMailer/src/Exception.php’;
require ‘PHPMailer/src/PHPMailer.php’;
require ‘PHPMailer/src/SMTP.php’;
$mail = new PHPMailer(true);
$mail->setLanguage(‘tr’);
$mail->CharSet = “utf-8”;
$mail->isSMTP();
$mail->Host = ‘mail.example.com’;
$mail->Port = ‘587’;
$mail->Username = ‘[email protected]’;
$mail->Password = ‘Mail şifresi’;
$mail->SMTPAuth = true;
$mail->SMTPSecure = ‘tls’;
$mail->setFrom(‘[email protected]’,’Example – Admin’);
$mail->addAddress(‘[email protected]’);
$mail->isHTML(true);
$mail->Subject = ‘Test İleti’;
$mail->Body = $ileti;
$mail->addAttachment($_FILES[‘dosya’][‘tmp_name’]);
if($mail->send())
{
echo(‘Mesaj gönderildi.’);
}
else
{
echo(‘Mail gönderilemedi.’);
}
?>[/code]
Gmail kullanımı;
[code]<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require ‘PHPMailer/src/Exception.php’;
require ‘PHPMailer/src/PHPMailer.php’;
require ‘PHPMailer/src/SMTP.php’;
$mail = new PHPMailer(true);
$mail->setLanguage(‘tr’);
$mail->CharSet = “utf-8”;
$mail->isSMTP();
$mail->Host = ‘smtp.gmail.com’;
$mail->Port = ‘465’;
$mail->Username = ‘[email protected]’;
$mail->Password = ‘Mail şifresi’;
$mail->SMTPAuth = true;
$mail->SMTPSecure = ‘ssl’;
$mail->setFrom(‘[email protected]’,’Example’);
$mail->addAddress(‘[email protected]’);
$mail->isHTML(false);
$mail->Subject = ‘Test İleti’;
$mail->Body = ‘Merhaba, Bu ileti test amaçlı iletilmiştir. Bilginize.’;
try{
if($mail->send()){
echo(‘Mesaj gönderildi.’);
}else{
echo(‘Mail gönderilemedi.’);
}
}catch(Exception $e){
echo(‘Mesaj gönderilemedi. Mailer Hatası: ‘.$mail->ErrorInfo);
}
?>[/code]