Надежно отправлять почту с помощью PHP? - PullRequest
1 голос
/ 01 октября 2019

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

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Исходя из моего опыта, PHPMailer - это путь, по которому нужно идти - https://github.com/PHPMailer/PHPMailer

Вам необходимо получить доступ к SMTP-серверу, который вы будете использовать для отправки почты. Это может быть либо сервер SMTP Google (адрес электронной почты @ gmail.com), либо сервер электронной почты вашей компании.

Быстрый пример для этого с использованием сервера SMTP Google:

1) УстановитьPHPMailer, использующий composer из терминала / оболочки:

composer require phpmailer/phpmailer

2) Включите сгенерированный композитором файл автозагрузки и PHPMailer в ваш скрипт php:

// Load Composer's autoloader
require 'vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

3) Отправьте электронное письмо, используя:

$mail = new PHPMailer(true);
//Server settings
$mail->SMTPDebug = SMTP::DEBUG_SERVER;                      // Enable verbose debug output
$mail->isSMTP();                                            // Send using SMTP
$mail->Host       = 'smtp.gmail.com';                    // Set the SMTP server to send through
$mail->SMTPAuth   = true;                                   // Enable SMTP authentication
$mail->Username   = 'YOUREMAIL@gmail.com';                     // SMTP username
$mail->Password   = 'YOUREMAILPASSWORD';                               // SMTP password
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
$mail->Port       = 587;                                    // TCP port to connect to

//Recipients
$mail->setFrom('YOUREMAIL@gmail.com', 'Mailer');
$mail->addAddress('TOADDRESS');     // Add a recipient

// Content
$mail->isHTML(true);                                  // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';

$mail->send();

Прочтите документацию по PHPMailer по адресу: https://github.com/PHPMailer/PHPMailer

0 голосов
/ 01 октября 2019

Обычно отправка электронной почты через SMTP-сервер вашего хостинга более эффективна, чем отправка электронной почты непосредственно с сервера приложений. Пока SMTP-сервер не был занесен в черный список, это точно.

Есть несколько хороших пакетов PHP Mail. Я использовал SwiftMailer в своих проектах: https://swiftmailer.symfony.com/

Быстрый пример для базового сценария: https://swiftmailer.symfony.com/docs/introduction.html

Вы можете установить его с помощью PHP composer (https://getcomposer.org/)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...