Отправка email с проверкой подлинности SMTP аккаунта (PHP)

На некоторых хостингах встречается ситуация, что отправить письма при помощи обычного mail с установкой заголовков отправителя и домена не получается.
В целях безопасности требуют подтвердить что вы являетесь владельцем данного ящика при помощи SMTP авторизации на почтовом сервере.
Если такое возникает то ничего другого не остаётся как сделать свою функцию mail.

Для этого будем использовать готовый класс PHP Mailer

Пример функции для отправки сообщений:

require 'PHPMailer/PHPMailerAutoload.php';

function mailSend($email,$subject,$text){ // отправление EMAIL пользователям
$mail = new PHPMailer;

//$mail->SMTPDebug = 3; // Enable verbose debug output

$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'mail.example.com'; // Specify main and backup SMTP servers
$mail->CharSet = 'utf-8';
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'password'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to

$mail->From = '[email protected]';
$mail->FromName = 'Support';
$mail->addAddress($email); // Add a recipient
// Set email format to HTML

$mail->Subject = $subject;
$mail->Body = $text;
$mail->AltBody = $text;

if(!$mail->send()) {
return 0;
#echo 'Message could not be sent.';
#echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
return 1;
#echo 'Message has been sent';
}
}

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *