我的问题是:
在控制器中我有:
var $components = array('电子邮件');
发送电子邮件的方法如下所示:
function send_emails() {
$this->Email->from = 'Somebody <[email protected] /cdn-cgi/l/email-protection>';
$this->Email->to = 'Somebody Else <[email protected] /cdn-cgi/l/email-protection>';
$this->Email->subject = 'Test';
$this->Email->send('Hello message body!');
}
我正在使用 Cake 1.3 并使用 Apache 2.2.11 和 PHP5 在本地主机上运行它。你们知道为什么它不起作用吗?
当我把
$this->Email->delivery = 'debug';
在代码中,它显示电子邮件信息,看起来一切正常。
您知道它不发送电子邮件的原因是什么吗?
如果您在远程服务器(即托管服务器)上进行开发,那么它应该可以工作,因为它会获取默认电子邮件。
因为您不是,所以您必须为邮件组件提供一些电子邮件功能。例如,您可以通过输入您的 gmail(或其他)smtp 详细信息(即服务器、登录名、密码)来做到这一点。
/* SMTP Options for GMAIL */
$this->Email->smtpOptions = array(
'port'=>'465',
'timeout'=>'30',
'auth' => true,
'host' => 'ssl://smtp.gmail.com',
'username'=>'[email protected] /cdn-cgi/l/email-protection',
'password'=>'your_gmail_password',
);
/* Set delivery method */
$this->Email->delivery = 'smtp';
See http://book.cakephp.org/view/1290/Sending-A-Message-Using-SMTP http://book.cakephp.org/view/1290/Sending-A-Message-Using-SMTP
如果您不确定要使用什么凭据,请在电子邮件提供商的帮助或常见问题解答中查找。通常可以通过搜索如何设置 Outlook 或 Thunderbird 来找到它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)