Как сделать

Как отправить письмо из скрипта PHP с использованием аутентификации SMTP

Человек настраивает PHP-скрипт для отправки почты по SMTP.

Функция PHP mail () проста, проста в использовании и прекрасно работает, но она также чрезвычайно негибкая. Если вы хотите указать SMTP- сервер для сценария или использовать SMTP-аутентификацию, вам не повезло. Чтобы преодолеть эти ограничения и отправить электронную почту из вашего PHP-скрипта с использованием SMTP-аутентификации, вам нужно обратиться к PHP- классу, такому как PHPmailer или пакет PEAR Mail.

Отправка электронной почты с помощью функции PHP Mail

Когда вы используете функцию PHP mail () , вы в конечном итоге отправляете электронную почту прямо с вашего веб-сервера, а не с вашего почтового сервера. Если у вас есть почтовый сервер через веб-хостинг или даже почтовый сервер с другим хостом, обычно вместо этого лучше отправлять почту.

Проблема в том, что функция PHP mail () не предоставляет никакого собственного способа отправки почты через SMTP. Если вы хотите открыть эту функциональность, вам нужно установить дополнительный класс PHP.

Вот несколько вариантов, которые работают:

  • PHPMailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

Мы покажем вам, как использовать PEAR Mail, но вы можете использовать любой класс, который поддерживает SMTP.

Человек настраивает PHP-скрипт для отправки почты по SMTP.
Hero Images / Getty

Если на вашем веб-хосте уже установлен один или несколько из этих классов, возможно, на нем есть учебники, относящиеся к вашей ситуации. Если так, продолжайте и используйте класс, к которому у вас есть доступ.

Используйте этот метод, только если вы используете PHP для создания своих собственных почтовых форм. Если вы используете систему управления контентом (CMS), такую ​​как WordPress, ищите плагин или встроенные функции для отправки почты через SMTP, а не пытайтесь создать свою собственную.

Как использовать PEAR для отправки почты через SMTP

  1. Убедитесь, что ваш домен указан на записях Mail Exchange (MX) вашего почтового сервера и запишите имя вашего почтового сервера. Например, это может быть mail.yourdomain.net или smtp.yourdomain.net.

  2. Проверьте, установлен ли PEAR Mail на вашем почтовом сервере.

  3. Если PEAR Mail не установлен, обратитесь к вашему веб-хосту за конкретными инструкциями по его установке.

  4. После установки PEAR Mail измените один из примеров файлов PHP в следующих разделах в соответствии со своими потребностями.

Пример PEAR Mail PHP-скрипт для SMTP-почты

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

<? php 
require_once "Mail.php";
$ from = "Имя отправителя <sender.name@sendersdomain.com>";
$ to = "Имя получателя <receient.name@recipientsdomain.com>";
$ subject = "Строка темы здесь:";
$ body = "любое сообщение, которое вы хотите";
$ host = "yourmailhost.com";
$ username = "ваше имя пользователя или адрес электронной почты";
$ password = "ваш пароль";
$ headers = array ('From' => $ from,
'To' => $ to,
'Subject' => $ subject);
$ smtp = Mail :: factory ('smtp',
массив ('host' => $ host,
'auth' => true,
'username' => $ username,
'password' => $ password));
$ mail = $ smtp-> send ($ to, $ headers, $ body);
if (PEAR :: isError ($ mail)) {
echo ("<p>". $ mail-> getMessage (). "</ p>");
} else {
echo ("<p> Сообщение успешно отправлено! </ p>");
}
?>

Пример PEAR Mail PHP Script для аутентификации SMTP и шифрования SSL

Если вы хотите использовать аутентификацию SMTP и шифрование SSL , вам придется внести несколько изменений в предыдущий пример. Вам нужно будет указать переменную хоста на вашем почтовом сервере SSL, а также указать номер порта, например, 25, 465, 587, 2525 или 8025. Обратитесь к вашему почтовому хосту за дополнительной информацией, если вы не можете определить, какой порт использовать.

<? php 
require_once "Mail.php";
$ from = "Имя отправителя <sender.name@sendersdomain.com>";
$ to = "Имя получателя <receient.name@recipientsdomain.com>";
$ subject = "Строка темы здесь:";
$ body = "любое сообщение, которое вы хотите";
$ host = "ssl: //yourmailhost.com";
$ port = "587";
$ username = "ваше имя пользователя или адрес электронной почты";
$ password = "ваш пароль";
$ headers = array ('From' => $ from,
'To' => $ to,
'Subject' => $ subject);
$ smtp = Mail :: factory ('smtp',
массив ('host' => $ host,
'port' => $ port,
'auth' => true,
'username' => $ username,
'password' => $ password));
$ mail = $ smtp-> send ($ to, $ headers, $ body);
if (PEAR :: isError ($ mail)) {
echo ("<p>". $ mail-> getMessage (). "</ p>");
} else {
echo ("<p> Сообщение успешно отправлено! </ p>");
}
?>
Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone