функция php5 mail () ошибка sendmail - PullRequest
3 голосов
/ 03 мая 2011

Я пытаюсь использовать функцию php mail (), но получаю сообщение об ошибке.Я установил sendmail через sudo apt-get install sendmail, отредактировал мой /etc/php5/cli/php.ini файл, добавив в эти строки следующий текст:

 sendmail_path = /usr/sbin/sendmail -t
 sendmail_from = uslonsweb003.ALU@no-reply.com

Затем я перезапустил свой веб-сервер и использовал эту команду для теста:

 :~$ php -r "mail('sadmicrowave@gmail.com', 'test subject', 'test body message');"

но я получаю следующую ошибку EVERYTIME !!!:

 sh: -t: not found

Это странно, потому что я пробовал sendmail_path с -t и без -t, но продолжаю получать ту же ошибку.Что я делаю не так?

ОБНОВЛЕНИЕ!это то, что показывает мой phpinfo (): (я добавил -t назад, но команда не работает с ним или без него).

enter image description here

Еще одно ОБНОВЛЕНИЕ -

Я закомментировал строки sendmail_path и sendmail_from, чтобы начать с нуля, ожидал, что функция mail () пожалуется, что php не знает, что это такое, но вместо этого я получаю ТОЧНУЮ ошибку, как и раньше (даже без двух строк полностью !!).Это заставляет меня поверить, что это вообще не связано с программой sendmail или функцией mail () ...

Ответы [ 4 ]

1 голос
/ 03 мая 2011

Я принимаю ошибку, чтобы указать, что вам не хватает информации, которую бы искала -t, 'To:', 'CC:' или 'BCC:'

Попробуйте добавить дополнительную информацию в вашу почтовую командную строку и посмотрите, работает ли она:

php -r "mail('sadmicrowave@gmail.com', 'test subject', 'test body message', 'To: Receiver <receiver@email.com>');"
1 голос
/ 03 мая 2011

Не знаю, но вы можете попробовать sendmail_path = /usr/sbin/sendmail -t -i.Это установлено на веб-хостинг, который я использую.В противном случае вы можете проверить, содержит ли phpinfo() правильные настройки для sendmail.

0 голосов
/ 12 мая 2011

Я решил свою проблему, используя модуль SwiftMailer, где я могу указать почтовый сервер для ретрансляции.Я использовал почтовый сервер своей компании в качестве свойства сервера и продолжал указывать следующие параметры:

require_once('/var/www/global/swiftmailer/lib/swift_required.php');
$transport = Swift_SmtpTransport::newInstance( 'mailout.usa.mycompany.com', 25 );
$mailer = Swift_Mailer::newInstance( $transport );
$message = Swift_Message::newInstance( 'Suggestion Status Update' )
    ->setFrom( array( 'uslonsweb003@no-reply.com' => 'SuggestionBox' ) )
    ->setTo( array( $pEmail => $username ) )
    ->setBody( $body, 'text/html' )
    ;
$result = $mailer->send( $message );
0 голосов
/ 03 мая 2011

Просмотрите следующие разделы в выводе phpinfo (), чтобы убедиться, что вы редактируете правильный файл:

  • Загруженный файл конфигурации
  • Дополнительные файлы .ini проанализированы

Если отредактированный файл не указан ни в одном из этих разделов, изменения не будут действовать.

...