【问题标题】:CakeEmail not sending, but no errorsCakeEmail 未发送,但没有错误
【发布时间】:2014-05-04 03:22:57
【问题描述】:

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

send_email.ctp

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

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

【问题讨论】:

  • @MoyedAnsari,我不确定你的意思。我的App::uses 电话与此相同。
  • 我的意思是你配置了电子邮件设置吗?
  • @MoyedAnsari,除了上述(基于the CakeEmail page)之外,我没有做过任何事情。你发布的链接没有提到电子邮件配置/设置。你能解释一下吗?
  • 请看我的回答。谢谢

标签: php cakephp cakeemail


【解决方案1】:

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

【讨论】:

  • 我在文档中看到了这一点,但它似乎是为了发送电子邮件我拥有的 gmail 帐户。我想要做的是从用户插入的电子邮件地址($from 参数)我的电子邮件地址发送一封电子邮件。
  • 是的,但为此您需要在您的机器上配置 SMTP 服务器。 gmail 提供免费的电子邮件发送服务。这里需要用户名,仅用于身份验证。
  • 好的,我回家试试看。
  • 好的,现在正在发送电子邮件,但不是从$Email-&gt;from 发送,而是从gmail 帐户发送。我想我可以使用 replyTo 来制作它,这样我就可以轻松地回复发送它的人。
猜你喜欢
  • 2020-09-06
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-04
  • 2012-05-24
  • 1970-01-01
  • 2018-04-26
相关资源
最近更新 更多