Как проверить, правильно ли mb_send_email отправляет электронное письмо на php?

#php #http #email #post

#php #http #Адрес электронной почты #Публикация

Вопрос:

У меня есть следующая простая форма электронной почты, которая отправляет данные в mb_send_mail :

 <!DOCTYPE html>
<html>
<?php
if ($_POST) {
    $header = "MIME-Version: 1.0n";
    $header .= "Content-Type: text/html;";
    $header .= "charset="utf-8"n";
    $to = 'testmyemailforphp@gmail.com';
    $subject = 'Test email';
    $isSent = mb_send_mail($to, $subject, $_POST['message'], $header);
}
if ($isSent)
    $output = "the message was sent<br>";
 else
    $output = "some error<br>";
?>

<body>
    <?php
    if ($output)
        echo "<p>$output</p>";
    ?>
    <form method="POST">
        <textarea name="message"></textarea><br>
        <input type="submit" value="Send">
    </form>
</body>

</html>
  

Теперь, после вставки некоторого текста и нажатия кнопки отправки, будет напечатано сообщение об успешном завершении the message was sent . Но в моем электронном письме testmyemailforphp@gmail.com (созданном специально для этой цели) я не вижу никаких доходов, даже через 15 минут. Итак, как я могу проверить, действительно ли функция mb_send_mail что-то отправляет?

Комментарии:

1. «Итак, как я могу проверить, действительно ли функция mb_send_mail что-то отправляет?» — Вы уже делаете это с помощью своего условного оператора. Если вы получили ответ «сообщение было отправлено», значит, почта выполнила свою работу. Если вы не получили электронное письмо, значит, где-то произошел сбой, и узнать причину может быть практически невозможно, учитывая, что у вас есть доступ к почте. Посмотрите, выдает ли что-нибудь сообщение об ошибке.

2. Спасибо, но я не хочу этого делать, и вам следует удалить этот комментарий. Вас могут взломать.

3. @FunkFortyNiner это просто тестовая почта

4. Предположительно, в вашем php.ini есть адрес «from» по умолчанию. Разрешено ли серверу, на котором вы запускаете это, (например, настройками SPF) отправлять почту от имени этого адреса?

5. @GregSchmidt Я понятия не имею, как настроить php.ini. Я настроил свой lamp с помощью https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mariadb-php-lamp-stack-on-debian-10 руководства и использую localhost для этого. Localhost не может отправить электронное письмо?