laravel 发送邮件
时间: 2023-10-24 15:10:05 浏览: 47
在 Laravel 中发送邮件非常简单,可以使用内置的邮件服务提供者 Mail,以及支持多种邮件驱动程序(如SMTP、Sendmail、Amazon SES等)。
下面是一个简单的示例,展示如何在 Laravel 中发送电子邮件:
```php
use Illuminate\Support\Facades\Mail;
use App\Mail\DemoEmail;
class DemoController extends Controller
{
public function sendEmail()
{
$details = [
'title' => 'Demo Email',
'body' => 'This is a demo email from Laravel.'
];
Mail::to('example@example.com')->send(new DemoEmail($details));
return "Email sent";
}
}
```
在上面的示例中,我们使用 `Mail` 门面调用 `to()` 方法指定收件人,然后使用 `send()` 方法发送邮件。在 `send()` 方法中,我们传递了一个 `DemoEmail` 类实例,该类是我们定义的一个电子邮件类,它负责构建邮件内容。
以下是一个示例 `DemoEmail` 类:
```php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class DemoEmail extends Mailable
{
use Queueable, SerializesModels;
public $details;
public function __construct($details)
{
$this->details = $details;
}
public function build()
{
return $this->subject('Demo Email')
->view('emails.demo');
}
}
```
在上面的示例中,我们定义了一个 `$details` 属性,它持有电子邮件内容的详细信息。然后,我们定义了一个构造函数,它接受 `$details` 并将其赋值给 `$this->details`。最后,我们定义了一个 `build()` 方法,它返回一个邮件视图,并指定了邮件主题。
在 Laravel 中,邮件视图通常存储在 `resources/views/emails` 目录中。例如,在上面的示例中,我们可以创建一个名为 `demo.blade.php` 的视图文件,其中包含电子邮件的内容。
此外,我们还可以通过链式调用方法来添加其他邮件内容,例如添加附件、Carbon副本等。
以上是一个简单的 Laravel 发送邮件的示例。您可以根据自己的需求进行更改和扩展。