跳转到内容

Laravel

Laravel 的 SMTP 邮件发送器无需安装任何包即可配合 SpacePost 使用。

.env
MAIL_MAILER=smtp
MAIL_SCHEME=smtp
MAIL_HOST=smtp.spacepost.dev
MAIL_PORT=25976
MAIL_USERNAME=spacepost
MAIL_PASSWORD=sp_live_YOUR_API_KEY
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="hello@acme.com"
MAIL_FROM_NAME="Acme"

Laravel 11 及更高版本读取 MAIL_SCHEME=smtp,并通过 STARTTLS 升级连接;Laravel 10 及更早版本读取 MAIL_ENCRYPTION=tls。同时保留这两行即可在所有版本上使用。不要使用 smtps 或 ssl:暂不提供隐式 TLS(465 端口)。

照常发送:

use Illuminate\Support\Facades\Mail;
use App\Mail\OrderShipped;
Mail::to($user)->send(new OrderShipped($order));

在你的 Mailable 中添加 SpacePost 的控制标头:

use Illuminate\Mail\Mailables\Headers;
public function headers(): Headers
{
return new Headers(text: [
'X-SpacePost-Tags' => 'category=order, order_id=' . $this->order->id,
]);
}

使用 Mail::queue() 发送的 Mailable 照常工作;队列 Worker 通过 SMTP 与 SpacePost 通信。请让并发 Worker 的数量保持在速率限制之内。