Как отправить письмо
Короткий ответ
Встроенная функция mail() отправляет письмо через почтовую программу сервера:
<?php
// send.php
$sent = mail('anna@example.com', 'Welcome', 'Thank you for signing up.', [
'From' => 'site@example.com',
'Content-Type' => 'text/plain; charset=utf-8',
]);
echo $sent ? 'Sent' : 'Failed';Через SMTP
Письма от mail() часто попадают в спам. Надёжнее отправлять через SMTP библиотекой PHPMailer (composer require phpmailer/phpmailer):
<?php
// send.php
require 'vendor/autoload.php';
$mail = new PHPMailer\PHPMailer\PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = getenv('MAIL_USER');
$mail->Password = getenv('MAIL_PASSWORD');
$mail->CharSet = 'UTF-8';
$mail->setFrom('site@example.com', 'Site');
$mail->addAddress('anna@example.com');
$mail->Subject = 'Welcome';
$mail->Body = 'Thank you for signing up.';
$mail->send();Функции из этого ответа
- mail — Отправляет письмо через почтовую программу сервера.
- filter_var — Проверяет или очищает значение по заданному правилу.
- error_log — Записывает сообщение в журнал ошибок.