我正在尝试从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',
],
],
在这两种情况下,结果都是相同的,运行时/邮件中的文件,但实际上没有发送邮件。有什么问题?
答案 0 :(得分:0)
我通过更改actionTestmail()函数解决了这个问题
$mailer = Yii::$app->mailer;
$mailer->useFileTransport = false;
$mailer->compose…
似乎就行了
'useFileTransport' => false,
配置中的是无用的
答案 1 :(得分:0)
我最终成功了 我在配置中有一个副本,声明“useFileTransport => true,”