Это действительно странная ситуация. То, что это работает от контроллера вообще жутко. * nix дистрибутивы любят по умолчанию отправлять sendmail. Php сможет отправлять электронную почту с контроллера, потому что PHP работает как системный пользователь, обычно с разрешениями Apache. Cron, с другой стороны, собирает учетные записи всех, кто его вызывал (т. Е. Вас), за исключением таких вещей, как (quel shock!) Почтовые серверы и т. Д. А затем есть еще двадцать миллионов возможных вещей, которые могут помешать cron использовать Отправить письмо.
Или эй, как насчет этих настроек Google SMTP::)
$this->Email->smtpOptions = array( 'port'=>'465',
'timeout'=>'30',
'host' => 'ssl://smtp.gmail.com',
'username'=>'you@gmail.com',
'password'=>'frosting',
);
Имейте в виду, я раньше не настраивал gmail в оболочках, так что никаких обещаний нет, но это пришло прямо из моего контроллера на моем сервере, и оно прекрасно работает для меня.
- действительно ли $ this-> Email-> send () отправляет или просто не выдает ошибку?
if($this->Email->send('test email')) {
$this->out('email sent');
} else {
$this->out('email falled');
}
- если он говорит, что отправляет, что он пытается отправить?
$this->Email->delivery = 'debug';
// Untested, but you get the idea
$mail = $this->Email->send();
$this->out($mail);
В дополнение к журналам приложений Cake (при необходимости включите отладку и ведение журнала) в журналах app / tmp / logs /, / var / log / message, maillog, secure и Apache все это будет отражать.
- HTH:)