【发布时间】:2014-08-05 14:01:47
【问题描述】:
我有一个组件,用于在 CakePHP 2.0 中发送电子邮件。在我将网站放在实时主机上之前,它运行良好。现在,我得到了错误:
无效的电子邮件:“admin@website.com”
显然,上面的电子邮件地址是有效的,所以我不知道为什么 Cake 会在这里抛出异常。请注意,无论我使用什么电子邮件地址,我都会得到相同的结果。
我使用的组件函数:
public function send($to, $subject, $body = null, $view = 'default', $vars = array(), $layout = 'layout'){
try{
$Email = new CakeEmail();
$Email->config('default');
$Email->template($view, $layout)->viewVars($vars);
$Email->from(array(Configure::read('Site.email') => Configure::read('Site.name')));
$Email->to($to);
$Email->subject($subject);
if(strlen(trim($body)) > 0){
$Email->send($body);
} else{
$Email->send();
}
} catch(Exception $e){
var_dump($e);
}
}
在我的电子邮件配置文件中,我使用的是默认邮件传输。
更新:我似乎遇到了与person in this question 完全相同的问题。基本上,我得到了错误:
无效的电子邮件:“email@website.com” 发生内部错误。
【问题讨论】:
-
admin@website.com是存储在$to或Configure::read('Site.email')变量中的电子邮件吗? -
@ArunJain admin@website.com 存储在
Configure::read('Site.email');我手动添加了不同的电子邮件地址,但无济于事。我什至注释掉了CakeEmail::from调用,只是给CakeEmail::to调用一个例外,即myname@hotmail.com -
如果
to被注释掉时问题蔓延到to行,那么我怀疑它发生得更早。注释掉模板行,看看代码是否正常运行。 -
@AgRizzo 我注释掉了模板和配置调用,只是想看看会发生什么。仍然收到来自电子邮件的无效错误。开始认为这可能与主机有关。
-
听起来这很可能是您在电子邮件配置中设置的值。您是否检查过堆栈跟踪以找出这实际上源于何处?您是否使用自定义email pattern?你检查过内部使用的
filter_var($email, FILTER_VALIDATE_EMAIL)是否成功验证了地址? ... ps,请务必提及您的 准确 CakePHP 版本!
标签: php cakephp cakephp-2.0