CityHost.UA
Допомога і підтримка

Як перевірити надсилання листів методами PHP та SMTP

Для об'єктивної перевірки відправки листів з сайту можна використовувати тестовий php-скрипт та поштовий сервіс, який не чутливий до листів, що можуть бути визнані як спам.

 

1. Перейдіть в [файловий менеджер] потрібного сайту та створіть в кореневій папці файл з назвою mail.php

 

2. Відкрийте створений файл та розмістіть всередині наступний php-код для відправки листів — PHP чи SMTP, в залежності від того який метод відправки потрібно перевірити. 

 

3. Отримайте тимчасову поштову скриньку для перевірки доставки листів використовуючи будь-який поштовий сервіс, ми рекомендуємо temp-mail.org. Відкривши сайт одразу згенерується тимчасовий email, використовуйте даний email в наступному кроці для поля кому відправити лист.

 

4. В коді файлу відредагуйте поля від кого та кому відправити тестовий лист згідно з інструкцією після чого збережіть зміни в файлі.

 

5. Зверніться до файлу через браузер — ваш-сайт.com.ua/mail.php

 

6. На сторінці одразу відобразиться результат виконання скрипта: зелений текст свідчитиме про успішну відправку, червоний текст про невдачу. У випадку успішної відправки ви побачите листа на сторінці сервісу тимчасової пошти з пункту 3. У випадку невдачі перевірте, чи вірно заповнено поля в скрипті.

 

Перевірка доставки методом PHP MAIL

 

FROM@EXAMPLE.COM — вкажіть email, обов'язково в домені сайту

TO@EXAMPLE.COM — вкажіть email, куди слід відправити листа (тимчасовий email з пункту 3)

<?php
$from =     "FROM@EXAMPLE.COM";
$to =       "TO@EXAMPLE.COM";
$subject="PHP лист з сайту ".$_SERVER["SERVER_NAME"];$message="версія php на сайті ".phpversion();$headers="From: ".$from."\r\n";$headers.="Content-Type: text/plain; charset=utf-8\r\n";if(mail($to,$subject,$message,$headers)){echo"<h1 style='color:green'>Листа успішно відправлено на ".$to." о ".date("H:i:s")." з сайту ".$_SERVER["SERVER_NAME"];}else{echo"<h1 style='color:red'>Помилка! Листа не відправлено";}

 

Перевірка доставки методом SMTP

 

FROM@EXAMPLE.COM — вкажіть скриньку, створену на хостингу [в розділі пошта]

PASSWORD — вкажіть пароль від створеної поштової скриньки

TO@EXAMPLE.COM — вкажіть email, куди слід відправити листа (тимчасовий email з пункту 3)

<?php
$user =     'FROM@EXAMPLE.COM';
$pass =     'PASSWORD';
$host =     'ssl://MX1.CITYHOST.COM.UA';
$port =     465;
$to =       'TO@EXAMPLE.COM';
$template="Subject: SMTP лист з сайту ".$_SERVER['SERVER_NAME']."\r\n"."To: $to\r\n"."From: $user\r\n"."Content-Type: text/plain; charset=utf-8\r\n"."Content-Transfer-Encoding: 7bit\r\n"."Лист від SMTP користувача $user\r\n.";if(smtp_mail($to,$template,$user,$pass,$host,$port)){echo"<h1 style='color:green'>Листа успішно відправлено на ".$to." о ".date("H:i:s")." з сайту ".$_SERVER["SERVER_NAME"];}else{echo"<h1 style='color:red'>Помилка! Листа не відправлено";}function smtp_mail($to,$template,$user,$pass,$host,$port){if($h=fsockopen($host,$port)){$data=array(0,"EHLO $host",'AUTH LOGIN',base64_encode($user),base64_encode($pass),"MAIL FROM: <$user>","RCPT TO: <$to>",'DATA',$template);foreach($data as $c){$c&&fwrite($h,"$c\r\n");while(substr(fgets($h,256),3,1)!=' '){}}fwrite($h,"QUIT\r\n");return fclose($h);}}

Схожі статті