Использование PHP mail()

У меня есть скрипт php mail, который отлично работает на одном хосте. Однако, когда я пытаюсь использовать тот же сценарий на хосте сетевых решений, функция возвращает true, но электронное письмо никогда не отправляется.

//get mail function data
$case = $_POST['case'];
$to = addslashes(strip_tags($_POST['to']));
$message = addslashes(strip_tags($_POST['message']));
$subject = addslashes(strip_tags($_POST['subject']));
$message = addslashes(strip_tags($_POST['message']));
$from = "confirmation@website.co";
$headers = "From: $from\r\n";

//send email
        if (mail($to,$subject,$message,$headers)){
            //formatting for error message
            $emailSent = "block";
            $emailFailed = "none";
        }
        else //if the email fails to send
        {

            $emailSent = "none";
            $emailFailed = "block";
        }
?>

Кто-нибудь знает, требуется ли для разных хостов конкретная информация в почтовом скрипте?

3 ответа

Это вопрос для поддержки клиентов Network Solutions. Отправка почты с серверов общего хостинга, как правило, хорошо блокируется - если они вообще это разрешают, она регулируется. Также звоню mail просто означает, что сообщение было успешно передано sendmail, не то чтобы почта когда-либо покидала сервер. Он может находиться в очереди на отправку, он мог отскочить по миллиону не зависящих от вас причин и т. Д.

Некоторые хосты имеют эту проблему. На моем (Mosso) мне пришлось настроить последний параметр (из) следующим образом:

mail($to, $subject, $message, $headers, "-f".$from)

Может не быть решением для NetSol, но стоит попробовать. Я знаю, что некоторые хосты отключают скрипт и требуют использования класса smtp для отправки почты.

Это предполагает, конечно, что все правильно с вашими записями DNS и MX. Если вы пытаетесь отправить сообщение из учетной записи, отличной от домена, из которого вы отправляете, некоторые провайдеры автоматически блокируют это.

Возможно, они не включили php mail, но спросили у хоста конкретику.

Глядя на ваш код, он недостаточно очищает ввод. взгляните на функцию is_forbidden здесь: http://thedemosite.co.uk/phpformmailer/source_code_php_form_mailer_more_secure_than_cgi_form_mailers.php

Другие вопросы по тегам