Как отправить электронную почту из PHP-скрипта, используя аутентификацию SMTP

Оглавление:

Как отправить электронную почту из PHP-скрипта, используя аутентификацию SMTP
Как отправить электронную почту из PHP-скрипта, используя аутентификацию SMTP
Anonim

Что нужно знать

  • Параметры класса PHP: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: обратите внимание на имя почтового сервера > убедитесь, что PEAR Mail установлен > измените файл PHP, используя приведенные примеры.

В этой статье объясняется, как использовать аутентификацию SMTP для отправки электронной почты с помощью функции PHP mail() в PEAR Mail.

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

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

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

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

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

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

Image
Image

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

Используйте этот метод только в том случае, если вы используете 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-файлов в следующих разделах в соответствии с вашими потребностями.

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

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

require_once "Mail.php";

$from="Имя отправителя";

$to="Имя получателя";

$subject=" Строка темы здесь: ";

$body="любое сообщение, которое вы хотите";

$host="yourmailhost.com";

$username="ваше имя пользователя или адрес электронной почты"; $password="ваш пароль";

$headers=array('From'=> $from, 'To'=> $to, 'Subject'=> $subject);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> true, 'username'=> $username, 'password'=> $password));

$mail=$smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {

echo("

". $mail->getMessage()."

);

} else {echo("

Сообщение успешно отправлено!

);}

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

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

require_once "Mail.php";

$from="Имя отправителя";

$to="Имя получателя";

$subject=" Строка темы здесь: ";

$body="любое сообщение, которое вы хотите";

$host="ssl://yourmailhost.com";

$port="587"; $username="ваше имя пользователя или адрес электронной почты";

$password="ваш пароль";

$headers=array('From'=> $from, ' Кому'=> $to, 'Subject'=> $subject);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'port'=> $port, 'auth'=> true, 'username'=> $username, 'password'=> $password));

$mail=$smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {

echo("

". $mail->getMessage()."

);

} else {echo("

Сообщение успешно отправлено!

);}

Рекомендуемые: