Cakephp 3未知电子邮件错误


Cakephp 3 Unknown Email error

我想问一下在cakeph3中发送电子邮件的问题。

我使用的是cakeph3文档,并配置了所有内容,如示例所示。

但是,当我尝试发送邮件时,会出现以下错误:

无法发送电子邮件:未知

//app.php
'EmailTransport' => [
    'default' => [
        'className' => 'Mail',
        // The following keys are used in SMTP transports
        'host' => 'smtp.gmail.om',
        'port' => 465,
        'timeout' => 30,
        'username' => 'mymail@gmail.com',
        'password' => 'password',
        'client' => null,
        'tls' => null,
    ],
],

ContactController:

public function contact() {
    if (isset($this->request->data) AND ($this->request->is('post'))) {
        $email = new Email('default');
        if ($email->from(['mymail@gmail.com' => 'My Site'])->to('othermail@gmail.com')->subject('Hello')->send('Message')) {
            //pr( 'ok');
        }
    }
}

这是一个通用的错误消息吗(在我看来,这可能有很多原因(?它在调试上下文中没有任何值。

您想要使用SMTP服务器,但已配置为使用Mail传输!

className选项应设置为Smtp。主机可能也应该不同(前缀为ssl://(,或者您应该启用TLS,请确保您阅读了下面链接的搜索中找到的问题/答案。

另请参见

  • 食谱>电子邮件>配置传输
  • https://stackoverflow.com/search?q=[cakehp]+gmail

默认配置中的主机名不正确。

应该是

'host' => 'smtp.gmail.com',

而不是

'host' => 'smtp.gmail.om',

有一件事总是被遗忘,那就是电子邮件配置文件

   `'Email' => [
    'default' => [
        'transport' => 'gmail', //this allows the email class to use the gmail settings
        'from' => 'youremail@gmail.com',
        //'charset' => 'utf-8',
        //'headerCharset' => 'utf-8',
    ],
    ],`

顺便说一句,你可以为测试、开发等设置多个配置文件

use Cake'Mailer'Email;
Email::configTransport('gmail', [
    'host' => 'smtp.gmail.com',
    'port' => 587,
    'username' => 'my@gmail.com',
    'password' => 'secret',
    'className' => 'Smtp',
    'tls' => true
]);

你有这个代码:替换My@gmail.com和秘密与你的凭据offcourse,然后使用你的代码,它将工作。