当我尝试通过Laravel Mail类发送邮件时,出现以下错误:
Symfony \ Component \ Debug \ Exception \ FatalThrowableError
(E_RECOVERABLE_ERROR)类型错误:函数参数太少 传入了Swift_Transport_EsmtpTransport :: __ construct(),0 /[...]/CustomerCenter/database/factories/vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php 在第37行和至少3预期
我使用 php artisan make:mail Contact 创建了一个邮件类,在目录邮件中创建了一个刀片视图'contact'并创建了一个在web中调用的控制器.php路由文件。
Contact类看起来像这样:
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class Contact extends Mailable {
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
*/
public function __construct() {
//
}
/**
* Build the message.
*
* @return $this
*/
public function build() {
return $this->view('emails.contact');
}
}
这是我的电子邮件配置 - 使用Config :: get('mail')
array:9 [▼
"driver" => "smtp"
"host" => "xxx.kasserver.com"
"port" => "25"
"from" => array:2 [▼
"address" => "mail@example.com"
"name" => "Example"
]
"encryption" => null
"username" => "xxx"
"password" => "***"
"sendmail" => "/usr/sbin/sendmail -bs"
"markdown" => array:2 [▼
"theme" => "default"
"paths" => array:1 [▼
0 => "/[...]/resources/views/vendor/mail"
]
]
]
在Controller文件中,我用这种方式调用Mail类:
\Mail::to('mail@example.com')->send( new Contact );
我已经检查了这些问题:
Too few arguments to function Db::__construct(), 0 passed in
Laravel: Too few arguments to function Illuminate\Support\Manager::createDriver()
我已经执行了:
我很困惑,我在本教程视频中做了同样的解释: https://laracasts.com/series/laravel-from-scratch-2017/episodes/26
答案 0 :(得分:0)
好的,由于某些原因,包含路径是: 的数据库/工厂/销售商强> / swiftmailer 但它应该是供应商 / swiftmailer。
我没有意识到这一点。我想我的FTP同步程序将所有供应商的东西复制到数据库/工厂。删除这些东西使得laravel抛出了丢失文件的异常。所以现在我知道该怎么做:
一个简单的
composer dump-autoload
解决了问题...