发送邮件 - Yii 2.0

时间:2015-10-01 11:34:58

标签: php email yii2 yii2-basic-app

我正在尝试发送邮件,但收到的错误就像。

  

未知属性 - yii \ base \ UnknownPropertyException

     

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

Yii::$app->mail->compose()更改为Yii::$app->mailer->compose()后 我收到了这个错误

  

无效参数 - yii \ base \ InvalidParamException

     

路径别名无效:@ backend / mail

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

我正在使用yii-app-basic。

配置/ console.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',
            ],
        ],
    ],
...

SiteController.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();
    }
}

错误截图 enter image description here

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

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

3 个答案:

答案 0 :(得分:3)

使用mailer组件。

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

在您的配置中编写components Yii::$app申请时可以使用的'components' => [ 'myComponent' => ['class' => '\common\MyClass'] ]

实施例

在配置中:

Yii::$app->myComponent->foo();

在控制器中:

sample.html

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

这是一个古老的问题,但是如果您仍想使用yii来轻松发送邮件,请使用dektrium,这是一个废弃的项目,但是它提供了许多功能,例如用户管理电子邮件登录等