3

我正在尝试发送邮件,但收到类似错误。

未知属性 – yii\base\UnknownPropertyException

获取未知属性:yii\web\Application::mail

更改Yii::$app->mail->compose()为后Yii::$app->mailer->compose() 出现此错误

无效参数 – yii\base\InvalidParamException

路径别名无效:@backend/mail

我没有得到我做错的地方。

我正在使用 yii-app-basic。

配置/控制台.php

...
    'components' => [
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
        ],
    ],
...

配置/web.php

...
    'components' => [
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'viewPath' => '@backend/mail',
            'useFileTransport' => true,
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'localhost',
                'username' => 'root',
                'password' => '',
                'port' => '8080',
                'encryption' => 'tls',
            ],
        ],
    ],
...

站点控制器.php

<?php

namespace app\controllers;

use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\filters\VerbFilter;
use yii\swiftmailer\Mailer;

class SiteController extends Controller
{
    public function actionRegister()
    {
        Yii::$app->mail->compose()
                ->setFrom('enamRaj@gmail.com')
                ->setTo('Raj@infotech.com')
                ->setSubject('This is a test mail')
                ->send();
    }
}

错误截图 在此处输入图像描述

我是 Yii 的新手。我没有太多想法。如果这是一个愚蠢的问题,请原谅我。

Mailing-Yii 2.0获得帮助。但是,没有太多的想法。请帮我发送电子邮件

4

3 回答 3

4

使用mailer组件。

Yii::$app->mailer->compose()

在您的配置中,您编写components的将在Yii::$app应用程序中可用。

例子:

在配置中:

'components' => [
    'myComponent' => ['class' => '\common\MyClass']
]

在控制器中:

Yii::$app->myComponent->foo();
于 2015-10-01T11:44:51.923 回答
0

您正在使用基本模板。路径 '@backend/mail' 仅适用于高级模板。正确的路径是@app/mail(或您存储电子邮件模板的任何路径)。

于 2017-10-27T07:57:46.747 回答
-1

好吧,这是一个老问题,但是如果您仍在使用 yii,如果您想不费吹灰之力地发送邮件,请使用 dektrium,这是一个废弃的项目,但它提供了许多功能用户管理电子邮件登录等

于 2020-04-14T20:30:00.267 回答