Подключение к php почтовому серверу без php -библиотеки - PullRequest
0 голосов
/ 06 августа 2020

Как подключить тестовый сервер php, например https://mailtrap.io/. Если я определил такие переменные, как

$host = 'mail.sample.com';
$port=25;
$user="username";
$pass="secret";

, возможно, также $ Auth = "PLAIN, LOGIN and CRAM-MD5" $ TLS = "Необязательно (STARTTLS на всех портах)"; Как использовать эти переменные, я нигде не могу найти образцы. Я хочу использовать простую php почтовую функцию.

mail($to, $subject, $message, $headers);

Спасибо

1 Ответ

0 голосов
/ 06 августа 2020

Mailtrap - это поддельный SMTP-сервер. Однако встроенная функция PHP mail() проста и не имеет поддержки аутентификации SMTP, которая требуется для mailtrap.

Итак, переходите и используйте пакет почтовой программы PHP, такой как PHPMailer, Swift Mailer, PearMail и т. Д. c, как показано здесь https://blog.mailtrap.io/php-email-sending/

Например, с PHPMailer

use PHPMailer\PHPMailer\PHPMailer;
require_once './vendor/autoload.php';
$mail = new PHPMailer();
// configure an SMTP
$mail->isSMTP();
$mail->Host = 'smtp.mailtrap.io';
$mail->SMTPAuth = true;
$mail->Username = '1a2b3c4d5e6f7g';
$mail->Password = '1a2b3c4d5e6f7g’;
$mail->SMTPSecure = 'tls';
$mail->Port = 2525;

$mail->setFrom('confirmation@hotel.com', 'Your Hotel');
$mail->addAddress('me@gmail.com', 'Me');
$mail->Subject = 'Thanks for choosing Our Hotel!';
$mail->isHTML(TRUE);
$mail->Body = '<html>Hi there, we are happy to <br>confirm your booking.</br> Please check the document in the attachment.</html>';
$mail->AltBody = 'Hi there, we are happy to confirm your booking. Please check the document in the attachment.';

if(!$mail->send()){
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

Существуют и другие, случайные варианты, но я уверен, что они не работаю в вашем случае. Один из них - изменение почтовых директив в php .ini и sendmail.ini (если у вас есть к нему доступ и вы любите приключения).

...