我正在使用Yii2在项目中设置邮件程序。 Swiftmailer似乎是这个框架的最佳解决方案,所以我只是按照文档进行操作。
在composer.json
中 "yiisoft/yii2-swiftmailer": "*"
其次是:
composer install
在我的配置中,我有:(是的,我现在只想保存文件。)
'components' => [
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => true,
],
然后我将它放入控制器:
\Yii::$app->mailer->compose()
->setFrom('from@domain.com')
->setTo('to@domain.com')
->setSubject('Message subject')
->setTextBody('Plain text content')
->setHtmlBody('<b>HTML content</b>')
->send();
我的错误是:
PHP致命错误 - 未找到“Swift_Message”类
我相信,经过一些研究,这与自动加载器/延迟加载有关,但我能找到的信息不稳定。其中大部分都表示,如果使用composer安装解决了这个问题,那么我的所有故障排除都让我一直在追逐我的尾巴。
Here's my stacktrace.感谢您的帮助。
其他:
$vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php',
答案 0 :(得分:0)
我很想关闭这种尴尬,但如果有人和我一样做出同样的假设,我想帮忙。
您的输入脚本是否包含'vendor / autoload.php'要求?可以 指向正确的文件?尝试手动放置模具('swiftmailer') 'vendor / swiftmailer / swiftmailer / lib / swift_required.php' - 它应该 出现在任何应用程序运行中。
die('swiftmailer');
没有效果。
vendor/autoload.php
不是必需的。
我曾假设供应商文件夹中已安装的其他扩展程序正在使用中。我发现之前的开发人员没有使用任何东西,require(__DIR__ . "/../vendor/autoload.php");
不在执行路径中。