проблема с функцией почты PHP
Вопрос
В настоящее время у меня есть следующее, и оно не работает.(обычно у меня есть основной текст и информация заголовка, но ничего не работает)
mail("idealvisions@live.com","Nieuw offerte aanvraag","test");
Мы сделаем это на моем сервере, потому что я использую PHP 5 или выше, никаких проблем.Но страница контактов принадлежит клиенту, на котором работает php. 4.4 Я считаю.Теперь клиент действительно подталкивает меня исправить это, но, похоже, это не исправляется.Я попробовал все
В чем здесь проблема?это версия PHP?
Я также проверил с помощью phpinfo и получил это
sendmail_from no value no value sendmail_path /usr/local/bin/bgc_webhosting_mailer.sh /usr/local/bin/bgc_webhosting_mailer.sh
Решение
Похоже, что на сервере клиента неправильно настроен обработчик отправки почты.
Другие советы
некоторые интернет-провайдеры, предоставляющие хостинг, а некоторые бесплатные хостинговые платформы отключают функцию почты, можете ли вы попробовать что-то вроде этого:
error_reporting(E_ALL);
if (mail ('you@yourdomain.com', 'Test subject', 'Test Body')){
echo 'Mail sent';
}else{
echo 'Mail not sent';
}
если есть проблема с mail() на их сервере, вы можете рассмотреть возможность публикации сообщения в почтовой форме на одном из ваших серверов, а затем после этого вернуть его обратно на страницу благодарности на сервере клиента.
Судя по пути sendmail, ваш хост использует специальную программу/сценарий оболочки sendmail.
Поскольку параметр sendmail from не установлен, вам необходимо установить его в функции mail(), если только он не прописан жестко в коде. /usr/local/bin/bgc_webhosting_mailer.sh
в этом случае вам следует обратиться к хостингу.
Пример настройки отправителя:
mail('recepient@example.com', 'Test subject', 'Test Body', "from:sender@example.com\n");
Если функция mail() действительно НЕТ доступен, а затем спросите у своего хостинга об альтернативе, например, о локальном SMTP-сервере.
Затем вы можете использовать локальный SMTP-сервер для отправки электронной почты.Вероятно, самый простой способ сделать это — загрузить библиотеку электронной почты, поддерживающую отправку через SMTP, например, PEAR Mail или SwiftMailer.
Груша: http://pear.php.net/package/MailБыстрый: http://swiftmailer.org/
Если ваш хост не предоставляет SMTP-сервер, вам, вероятно, следует поискать другой хост.Однако вы всегда можете использовать бесплатную службу электронной почты, например Gmail или Yahoo, и отправлять почту через их SMTP.
Также проверьте SeLinux, он может запретить любому потоку, созданному Apache, отправлять почту.В этом случае вы не получите ни ошибок, ни почты.