YII2 - 邮件始终保存为文件但不发送尽管useFileTransport = false

时间:2016-10-06 05:11:57

标签: yii2 mailer

我正在尝试从Yii2制作网站发送邮件,但邮件总是到达运行时/邮件文件夹。

这是控制器中的操作:

 public function actionTestmail()
 {
   Yii::$app
        ->mailer
        ->compose(['html' => 'courriel-test-html']          
        )
        ->setFrom("user@domain.fr") //->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name . ' robot'])
        ->setTo('me@mydomain.com')
        ->setSubject('Email for test purpose')
        ->send();
     return $this->render('index');
 }

的index.php

// comment out the following two lines when deployed to production
//defined('YII_DEBUG') or define('YII_DEBUG', true);
//defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/../config/web.php');

(new yii\web\Application($config))->run();

配置/ web.php

    'Smtpmail'=>array(
                'class'=>'application.extensions.smtpmail.PHPMailer',
                'useFileTransport' => false,
                'Host'=>"fox.o2switch.net",
                'Username'=>'user@domain.fr',//a valid account 
                'Password'=>'******',//the actual password for the account above
                'Mailer'=>'smtp',
                'Port'=>587,
                'SMTPAuth'=>true, 
                'SMTPSecure' => 'tls',
            ),

or 

      'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'useFileTransport' => false,
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'fox.o2switch.net',
                'username' => 'user@domain.fr',
                'password' => '*******',
                'port' => '25',
               // 'encryption' => 'tls',
            ],
        ],

在这两种情况下,结果都是相同的,运行时/邮件中的文件,但实际上没有发送邮件。有什么问题?

2 个答案:

答案 0 :(得分:0)

我通过更改actionTestmail()函数解决了这个问题

$mailer = Yii::$app->mailer;
$mailer->useFileTransport = false;
$mailer->compose…

似乎就行了

'useFileTransport' => false,
配置中的

是无用的

答案 1 :(得分:0)

我最终成功了 我在配置中有一个副本,声明“useFileTransport => true,”