Отправка электронной почты с использованием функции PHP Mail на локальном хосте с сервером XAMPP: подробное руководство

Отправка электронных писем — обычное требование в проектах веб-разработки. Функциональность электронной почты имеет решающее значение, будь то регистрация пользователя, сброс пароля или уведомления. В этой статье мы рассмотрим, как отправлять электронные письма с помощью функции почты PHP на локальном сервере с помощью XAMPP. Мы рассмотрим несколько методов, предоставим примеры кода и дадим разговорные объяснения, чтобы процесс был понятен.

Методы отправки электронных писем:

  1. Базовая реализация:
    Функция PHP mail — это простой способ отправки электронных писем. Вот пример того, как его использовать:
<?php
$to = 'recipient@example.com';
$subject = 'Hello from localhost!';
$message = 'This is a test email sent using the PHP mail function on localhost.';
$headers = 'From: yourname@example.com';
if (mail($to, $subject, $message, $headers)) {
    echo 'Email sent successfully!';
} else {
    echo 'Failed to send email.';
}
?>
  1. Конфигурация SMTP:
    Чтобы отправлять электронную почту через сервер SMTP (простой протокол передачи почты), вам необходимо настроить параметры PHP. Вот пример настройки SMTP с использованием библиотеки PHPMailer:
<?php
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->SMTPAuth = true;
$mail->Username = 'your-email@example.com';
$mail->Password = 'your-email-password';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->setFrom('your-email@example.com', 'Your Name');
$mail->addAddress('recipient@example.com');
$mail->Subject = 'Hello from localhost!';
$mail->Body = 'This is a test email sent using SMTP on localhost.';
if ($mail->send()) {
    echo 'Email sent successfully!';
} else {
    echo 'Failed to send email.';
}
?>
  1. Использование локального инструмента тестирования.
    Чтобы избежать отправки реальных электронных писем во время разработки, вы можете использовать локальный инструмент тестирования электронной почты, например MailHog или Mailtrap. Эти инструменты перехватывают исходящие электронные письма и отображают их в веб-интерфейсе. Вот пример использования MailHog с XAMPP:
  • Загрузите и установите MailHog ( https://github.com/mailhog/MailHog/releases ) и убедитесь, что он работает на вашем локальном хосте.
  • Настройте файл php.iniв вашей установке XAMPP:
    [mail function]
    SMTP=localhost
    smtp_port=1025
    sendmail_path = "\"C:\Path\to\MailHog\sendmail.exe\" -smtp-server localhost:1025"
  • Перезапустите сервер Apache.
  • Используйте функцию почты PHP как обычно, и электронные письма будут перехвачены MailHog.