콘텐츠로 이동

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도 정상적으로 동작합니다. 큐 워커가 SMTP로 SpacePost와 통신합니다. 동시 워커 수는 요청 한도 안에서 유지하세요.