Php CakeEmail未发送,但没有错误
我对CakePHP非常陌生,这是我第一次尝试设置电子邮件表单 保持示例简单:Php CakeEmail未发送,但没有错误,php,cakephp,cakeemail,Php,Cakephp,Cakeemail,我对CakePHP非常陌生,这是我第一次尝试设置电子邮件表单 保持示例简单: <?php App::uses('AppController', 'Controller'); App::uses('CakeEmail', 'Network/Email'); class EmailController extends AppController { public function send_email($from, $subject, $message) { $Ema
<?php
App::uses('AppController', 'Controller');
App::uses('CakeEmail', 'Network/Email');
class EmailController extends AppController {
public function send_email($from, $subject, $message) {
$Email = new CakeEmail();
$Email->from($from)
->to('[my personal email]')
->subject($subject);
if($Email->send($message)) {
$result = 'Your email has been sent.';
} else {
$result = 'Your email failed to send.';
}
$this->set('result', $result);
$this->set('params', '('.$from.'|'.$subject.'|'.$message.')');
}
}
我收到“您的电子邮件已发送。”,$params看起来和我预期的一样,我没有看到任何错误。。。但是我没有收到电子邮件。知道为什么会发生这种情况吗?在此之前,您需要在Config文件夹下的Email.php中定义电子邮件配置 这里我们以gmail配置为例
class EmailConfig {
public $gmail = array(
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'username' => 'username@gmail.com',
'password' => '*****',
'transport' => 'Smtp'
);
}
然后您可以在控制器中使用此设置,如
$Email= new CakeEmail('gmail');
总之,您必须根据需要配置SMTP。我希望这对你很方便。谢谢试试这个@MoyedAnsari,我不知道你的意思。我的
App::uses
调用与此相同。我的意思是,您配置了电子邮件设置吗?@MoyedAnsari,除了上面提到的之外,我没有做任何事情(这是基于。你发布的链接没有提到电子邮件配置/设置。你能解释一下吗?请看我的回答。谢谢。我在文档中看到了这一点,但它似乎是用于从我自己的gmail帐户发送电子邮件。我想做的是从用户插入的电子邮件地址发送电子邮件。)(参数中的$from)到我的电子邮件地址。是的,但为此,您需要在您的计算机上配置SMTP服务器。gmail为发送电子邮件提供免费服务。此处用户名仅用于身份验证。好的,我回家后会尝试一下。好的,电子邮件现在正在发送,但不是从$email->from
发送,而是从gmail帐户。我想我可以使用replyTo来创建它,这样我就可以很容易地回复发送它的人。
$Email= new CakeEmail('gmail');