【发布时间】:2011-07-28 15:20:28
【问题描述】:
我无法从本地服务器上的 cakephp shell 接收电子邮件。
我已经建立了一个 ubuntu 服务器,并且 report.php 位于 myapp/vendors/shells。 report.php 包括:
<?php
class EmailShell extends Shell {
function main() {
App::import('Core', 'Controller');
App::import('Component', 'Email');
$this->Controller =& new Controller();
$this->Email =& new EmailComponent(null);
$this->Email->initialize($this->Controller);
$this->Email->to = 'me@gmail.com';
$this->Email->subject = 'spain';
$this->Email->from = 'blabla <me@gmail.com>';
$this->Email->send('test email');
$this->out('email sent');
}
}
?>
我可以在控制台中运行此 shell 并接收“已发送电子邮件”输出,但我的收件箱中没有电子邮件。我还可以在控制器中运行类似的操作,成功将电子邮件发送到我的电子邮件地址。在这两种情况下,当电子邮件脚本运行时,它会在成功/不成功发送电子邮件之前挂起 1 分钟。
我很欣赏这有很多变数,但由于我能够从控制器发送电子邮件,但不能从 shell 发送电子邮件,我认为这消除了服务器问题。
非常感谢任何帮助。
【问题讨论】:
-
发送本地邮件应该是即时的。您是否使用了一些可能会超时的外部 SMTP 服务器,从而导致回退到本地服务?
-
我没有外部 SMTP 服务器(我不认为)只是安装了 sendmail 的本地 ubunter 服务器