У меня XAMPP 7.0.8 Linux. Давайте рассмотрим самую простую программу. Полагаю, что если удастся добиться её выполнения, то и более сложная программа на её основе выполнится тоже. Код (Text): <?php $addr = 'my_address_on_gmail@gmail.com'; $message = "Ваше письмо"; $resMail = mail ($addr, 'Некоторая тема', $message); if ($resMail !== TRUE) { echo "Письмо не отправлено"; exit; } echo "Письмо отправлено"; ?> К сожалению, эта программа, хоть и выдаёт результат "Письмо отправлено", но при входе в почту my_address_on_gmail@gmail.com никакого письма нет, даже в Спаме. На всякий случай показываю содержимое php.ini: Код (Text): [mail function] ; For Win32 only. ; http://php.net/smtp SMTP=localhost ; SMTP=smtp.gmail.com ; http://php.net/smtp-port smtp_port=25 ; smtp_port=465 ; For Win32 only. ; http://php.net/sendmail-from ; sendmail_from = me@example.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path sendmail_path= ; Force the addition of the specified parameters to be passed as extra parameters ; to the sendmail binary. These parameters will always replace the value of ; the 5th parameter to mail(), even in safe mode. ;mail.force_extra_parameters = ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename mail.add_x_header=On ; Log all mail() calls including the full path of the script, line #, to address and headers ;mail.log = Попытка изменить SMTP на smtp.gmail.com и smtp_port на 465 с рестартом служб в XAMPP-менеджере не приводит ни к чему. Как сделать так, чтобы пользователь my_address_on_gmail@gmail.com получил отправленную почту? Спасибо за ответы!
Оченно много читать про почту и смежные технологии, сейчас просто так не отправить, все борются со спамом. Через SMTP, с помощью сторонних библиотек например PHPMailer, или Swift, смотреть настройки сервера итд итп. Причин сотни могут быть
Если не проходят письма - попробуйте более базовый уровень: Код (Text): echo "Test text" | mail -s "Test title" my_address_on_gmail@gmail.com это прям в командную строку Linux надо ввести
надо разбираться значит с почтовым сервером в системе. либо, как вариант, слать письма через внешний SMTP (для новичка это будет проще, чем разбираться с настройкой DKIM и прочих прелестей почтовой жизни). в общем, почта - это в 90% случаев гемор тот еще
потому что это не Windows? там же выше написано "Windows only" --- Добавлено --- я бы посоветовал вернуть php.ini в девственное состояние и использовать проверенную библиотеку работы с почтой и в её конфигурации прописать данные внешнего smtp. https://swiftmailer.symfony.com/ https://github.com/PHPMailer/PHPMailer или опять же имея данные для внешнего SMTP: gmail/mailru/yandex и т.п., и настроить в системе транспорт EXIM пример: https://tau-design.net/настройка-почты-яндекс-в-exim4/ , https://myitstuff.ru/16-setting-up-exim-on-debian-mail-from-gmail