我有这个休假捕获应用程序需要发送电子邮件,它使用 ldap 来验证登录并获取用户数据。
添加电子邮件类、控制器、视图、路由等后,我得到...无法使用 STARTTLS 连接:代码 1 错误,iv'e 尝试了以下操作但没有成功...
我也尝试过其他邮件提供商但没有成功。
非常奇怪的是,我创建了一个具有相同设置的“空”新 Laravel 9 应用程序,并且我在发送邮件时没有任何问题,并且设置实际上是相同的,只是没有为休假捕获构建的所有内容。
我的设置如下...
.env
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=xxxxxxxxx
MAIL_PASSWORD=xxxxxxxxx
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"
控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use App\Mail\SendMail;
use Illuminate\Support\Facades\Log;
class EmailController extends Controller
{
public function index()
{
Log::info('mail ');
$testMailData = [
'title' => 'Test Email From AllPHPTricks.com',
'body' => 'This is the body of test email.'
];
Mail::to('[email protected]')->send(new SendMail($testMailData));
dd('Success! Email has been sent successfully.');
}
}
路线
Route::get('email', [EmailController::class, 'index']);
sendmail.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class SendMail extends Mailable
{
use Queueable, SerializesModels;
public $testMailData;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($testMailData)
{
$this->testMailData = $testMailData;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->subject('Email From AllPHPTricks.com')
->view('emails.testMail');
}
}
我的看法
<!DOCTYPE html>
<html>
<head>
<title>AllPHPTricks.com</title>
</head>
<body>
<h1>{{ $testMailData['title'] }}</h1>
<p>{{ $testMailData['body'] }}</p>
</body>
</html>
尝试在
'auth_mode' => null
中注释掉这一行 config/mail.php
。
您可以尝试将 MAIL_MAILER=smtp 更改为 sendmail 看看是否可以解决问题