2012-03-12 2 views
1

У меня есть этот сервер rackspace, и я установил там sendmail. sendmail настроен на отправку писем с помощью sendgrid.php mail не работает на облаке rackspace

так что sendmail работает через терминал, но функция php mail возвращает false и не отправляет никаких сообщений электронной почты. путь sendmail правильно установлен в php.ini.

У меня есть это в /etc/php.ini,

sendmail_path = /usr/sbin/sendmail 

, когда я взять phpinfo() с помощью

<?php 

phpinfo() 

возвращает

sendmail_path = /usr/sbin/sendmail 
+0

два быстрых идей: перезагрузить ваш конфигурационный файл и дважды проверить разрешения – Cameron

+0

разрешения, какие разрешения на самом деле? – nivanka

+0

Убедитесь, что вы используете 'php.ini', который вы редактируете, когда отображается' phpinfo() ', проверьте, что' php.ini' отображается как '/ etc/php.ini'. В противном случае этот вопрос может получить больше ответов на serverfault.com – MrCode

ответ

2

От http://www.rackspace.com/knowledge_center/article/how-do-i-test-php-smtp-functionality здесь код, который они используют для того, чтобы ваши почтовые сообщения работали на облачных облачных сайтах Rackspace ...

Non-SSL

<?php 
require_once "Mail.php"; 


$from = "Web Master <[email protected]>"; 
$to = "Nobody <[email protected]>"; 
$subject = "Test email using PHP SMTP\r\n\r\n"; 
$body = "This is a test email message"; 

$host = "mail.emailsrvr.com"; 
$username = "[email protected]"; 
$password = "yourPassword"; 

$headers = array ('From' => $from, 
    'To' => $to, 
    'Subject' => $subject); 
$smtp = Mail::factory('smtp', 
    array ('host' => $host, 
    'auth' => true, 
    'username' => $username, 
    'password' => $password)); 

$mail = $smtp->send($to, $headers, $body); 

if (PEAR::isError($mail)) { 
    echo("<p>" . $mail->getMessage() . "</p>"); 
} else { 
    echo("<p>Message successfully sent!</p>"); 
} 

С SSL

<?php 
require_once "Mail.php"; 

$from = "Web Master <[email protected]>"; 
$to = "Nobody <[email protected]>"; 
$subject = "Test email using PHP SMTP with SSL\r\n\r\n"; 
$body = "This is a test email message"; 

$host = "ssl://secure.emailsrvr.com"; 
$port = "465"; 
$username = "[email protected]"; 
$password = "yourPassword"; 

$headers = array ('From' => $from, 
    'To' => $to, 
    'Subject' => $subject); 
$smtp = Mail::factory('smtp', 
    array ('host' => $host, 
    'port' => $port, 
    'auth' => true, 
    'username' => $username, 
    'password' => $password)); 

$mail = $smtp->send($to, $headers, $body); 

if (PEAR::isError($mail)) { 
    echo("<p>" . $mail->getMessage() . "</p>"); 
} else { 
    echo("<p>Message successfully sent!</p>"); 
} 
?> 

Соответствующий вопрос

php mail function not sending emails/taking too long to send emails

Также здесь они предлагают некоторые из того, что проблема есть.

http://www.joshuawinn.com/huge-email-delays-on-rackspace-cloud-sites-dont-use-php-mail

+0

. Хотя это теоретически может ответить на этот вопрос, мы хотели бы, чтобы вы включили в свой ответ важные части связанной статьи и предоставить ссылку [ссылка для справки] (http://meta.stackexchange.com/q/8259). Если это не удастся, это даст ответ на риск от гниения. – Kev

+0

Извините, Кев, я обновил свое сообщение, чтобы отразить то, что вы просили. – Xedecimal

+0

Очень ценится. Благодарю. – Kev