在 Ubuntu 上配置 Laravel 以发送邮件需要以下几个步骤:
在 Ubuntu 上,常用的邮件传输代理是 Postfix。要安装 Postfix,请运行以下命令:
sudo apt-get update
sudo apt-get install postfix
安装过程中,系统会提示你选择 Postfix 的配置类型。对于大多数用户来说,选择 “Internet Site” 是合适的。然后,输入系统邮件名称(例如:yourdomain.com)。
打开 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}"
Laravel 使用 PHPMailer 进行邮件发送。确保你的 Laravel 项目已经安装了 PHPMailer。如果尚未安装,请运行以下命令:
composer require phpmailer/phpmailer
创建一个新的控制器(如果尚未创建),并在其中添加以下方法:
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 方法来测试邮件发送功能。如果一切配置正确,你应该能够收到一封测试邮件。