温馨提示×

Laravel在Ubuntu上的邮件发送配置

小樊
42
2025-12-16 14:57:22
栏目: 智能运维

在 Ubuntu 上配置 Laravel 以发送邮件需要以下几个步骤:

  1. 安装邮件传输代理(MTA):

在 Ubuntu 上,常用的邮件传输代理是 Postfix。要安装 Postfix,请运行以下命令:

sudo apt-get update
sudo apt-get install postfix

安装过程中,系统会提示你选择 Postfix 的配置类型。对于大多数用户来说,选择 “Internet Site” 是合适的。然后,输入系统邮件名称(例如:yourdomain.com)。

  1. 配置 Laravel:

打开 Laravel 项目的 .env 文件,找到以下行:

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_email@example.com
MAIL_FROM_NAME="${APP_NAME}"

将上述配置替换为你所使用的邮件服务提供商的相关信息。例如,如果你使用的是 SendGrid,配置应如下所示:

MAIL_MAILER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=your_sendgrid_api_key
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_email@example.com
MAIL_FROM_NAME="${APP_NAME}"
  1. 安装 PHP Mailer:

Laravel 使用 PHPMailer 进行邮件发送。确保你的 Laravel 项目已经安装了 PHPMailer。如果尚未安装,请运行以下命令:

composer require phpmailer/phpmailer
  1. 测试邮件发送:

创建一个新的控制器(如果尚未创建),并在其中添加以下方法:

use Illuminate\Support\Facades\Mail;
use App\Mail\YourMailable;

public function sendEmail()
{
    Mail::to('recipient@example.com')->send(new YourMailable());
    return 'Email sent successfully!';
}

接下来,创建一个名为 YourMailable.php 的新 Mailable 类:

php artisan make:mail YourMailable

编辑 app/Mail/YourMailable.php 文件,添加你想要发送的邮件内容:

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class YourMailable extends Mailable
{
    use Queueable, SerializesModels;

    public function __construct()
    {
        //
    }

    public function build()
    {
        return $this->view('emails.your_template');
    }
}

最后,在 resources/views/emails/your_template.blade.php 文件中创建邮件的 HTML 模板。

现在,你可以运行 sendEmail 方法来测试邮件发送功能。如果一切配置正确,你应该能够收到一封测试邮件。

0