1

我对 CakePHP 很陌生,这是我第一次尝试设置电子邮件表单。

保持示例简单:

<?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.')');
    }
}

发送电子邮件.ctp

<?php echo $result;?>
<br>
<?php echo $params;?>

我收到“您的电子邮件已发送。”,$params 看起来与我预期的一样,我没有看到任何错误......但我没有收到电子邮件。知道为什么会发生这种情况吗?

4

1 回答 1

3

在此之前,您需要在 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。我希望这对你有用。谢谢

于 2014-03-26T12:45:52.060 回答