Настройка SMTP на PHP


SMTP для PHP

Многие сообщения на php отправляются стандартной функцией mail, начиная с версии 4. Огромное количество движков уже включают в себя SMTP (Simple Mail Transfer Protocol — простой протокол передачи почты), но бывает и такое, что движок поддерживает только метод mail, а хостинги в свою очередь ограничивают использовании этой функции mail вследствие чего, отправка писем становится невозможной, такие ограничения связаны с тем, что большинство спамеров используют именно эту функцию для отправки писем со взломанных ими сайтами, а также при отправке писем при помощи mail, имеется большая вероятность попадания письма в спам. Конечно есть хостинги, которые используют только функцию mail, но они очень качественно её настроили, в таких случаях, хостинг скорее всего не будет поддерживать smtp.

В данном примере мы будем настраивать smtpmail на локальный сервер вашего хостинга, как правило на многих хостинга при ограниченной функции mail, альтернативой является smtp.

Какие данные нам нужны?
  1. Ваш почтовый адрес вида: username@site.com
  2. Пароль от вашего почтового адреса
  3. Хост на котором размещен сервер SMTP
  4. Порт соединения с серверов, по умолчанию 25.
 
Настройка
Давайте загрузим библиотеку отправки писем SMTP.
Исходник прикреплен к топику скачать его можно ниже...

Настройте данную библиотеку под себя…

//Конфигурация
			//Ваш почтовый адрес на хостинге.
			$config['smtp_username'] = 'username@site.com';
			//Пароль доступа к вашему почтовому адресу.
			$config['smtp_password'] = 'вашпароль';
			//Название Вашего сайта, например title..
			$config['smtp_from']     = "Новый сайт";
			//Где находится сервер smtp, обычно localhost
			$config['smtp_host']     = 'localhost';
			//25 порт по умолчанию.
			$config['smtp_port']     = '25';
			//Показывать ли ошибки при настройке?
			$config['smtp_debug']    = true;
			//Кодировка обычно UTF-8
			$config['smtp_charset']  = 'UTF-8';
 
Далее в исходниках, где происходит отправка писем — создайте подключение.
Например в functions.php
//Подключаем библиотеку для отправки писем через smtp.
include($_SERVER["DOCUMENT_ROOT"]."/anyfolder/smtp-sender.php");
Теперь осталось всего ничего, заменить вашу функцию mail на smtpmail.

Везде где было:
mail($mail_to, $subject, $message, $headers);
Замените на…
smtpmail($mail_to, $subject, $message, $headers);
Если ваши ПАРАМЕТРЫ отличаются от заданных, переопределите эти переменные по принципу…
$mail_to = Ваша переменная;
$subject = Ваша переменная;
$message = Ваша переменная;
$headers = Ваша переменная;

smtpmail($mail_to, $subject, $message, $headers);


Подводные камни...
Если при отправке получаете ошибку "Не могу отправить команду RCPT TO:"
Проверьте, передается ли значение переменной $mail_to в библиотеку, для этого сделайте var_dump($mail_to);
Если ошибок нет, но письма так и не приходят, попробуйте не передавать $headers в библиотеку smtp-sender.php

$headers = null;

Надеюсь данная статья окажется для Вас полезной…
Статья "Настройка SMTP на PHP" содержит 0 комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.