2016-06-22 8 views
0

Я написал небольшой код для проверки скорости моего сервера. Для завершения выполнения требуется около 60 секунд.Функция php mail() занимает слишком много времени для выполнения на сервере centos6

<?php 


    $start=time(); 

    $to = "[email protected]"; 

    $subject = "This is subject"; 

    $message = "<b>This is HTML message.</b>"; 
    $message .= "<h1>This is headline.</h1>"; 

    $header = "From:[email protected] \r\n"; 
    $header .= "MIME-Version: 1.0\r\n"; 
    $header .= "Content-type: text/html\r\n"; 

    $retval = mail ($to,$subject,$message,$header); 

    if($retval == true) { 
     echo "Message sent successfully..."; 
    }else { 
     echo "Message could not be sent..."; 
    } 

    $after=time(); 
    $total=$after-$start; 
    echo "</br>"; 
    echo "Total execution time : ".$total." seconds"; 
?> 

Что может быть причиной? и как я могу улучшить время выполнения? Я уже увеличил ограничение памяти в файле php.ini.

+0

И это полностью выполнено? Получаете ли вы письмо? Не могли бы вы проверить свои журналы, возможно, блокирующий брандмауэр, ошибка с DNS или полезное сообщение в журнале apache. – Dom

+0

@Dom: Это была проблема с службой sendmail на сервере. Я установил postfix и теперь его способ намного быстрее. Это было 60 секунд с sendmail. Теперь это занимает всего 1 секунду. –

+0

Лучший способ выяснить, почему сценарий занимает много времени, - это использовать профилирование или ведение журнала в скрипте. Это вопрос программирования, а не вопрос электронной почты или Linux. –

ответ

0

Это была проблема с почтовым сервером sendmail. Установка postfix mailserver решила проблему.