Documentation

EmailService

Service for sending emails.

Uses PHPMailer for SMTP email delivery. Configuration is loaded from environment variables. When email is not configured, tokens are logged instead of emailed (useful for development).

Tags
since
3.0.0

Table of Contents

Properties

$config  : array{enabled: bool, host: string, port: int, username: string, password: string, encryption: string, from_address: string, from_name: string}

Methods

__construct()  : mixed
Create a new EmailService.
isEnabled()  : bool
Check if email is enabled and configured.
sendPasswordResetEmail()  : bool
Send a password reset email.
buildPasswordResetHtml()  : string
Build HTML email body.
buildPasswordResetPlainText()  : string
Build plain text email body.
buildResetUrl()  : string
Build the reset URL.
loadConfigFromEnv()  : array{enabled: bool, host: string, port: int, username: string, password: string, encryption: string, from_address: string, from_name: string}
Load email configuration from environment variables.
send()  : bool
Send an email via SMTP.

Properties

$config

private array{enabled: bool, host: string, port: int, username: string, password: string, encryption: string, from_address: string, from_name: string} $config

Methods

__construct()

Create a new EmailService.

public __construct([array{enabled?: bool, host?: string, port?: int, username?: string, password?: string, encryption?: string, from_address?: string, from_name?: string}|null $config = null ]) : mixed
Parameters
$config : array{enabled?: bool, host?: string, port?: int, username?: string, password?: string, encryption?: string, from_address?: string, from_name?: string}|null = null

Optional config array. If null, loads from environment.

isEnabled()

Check if email is enabled and configured.

public isEnabled() : bool
Return values
bool

sendPasswordResetEmail()

Send a password reset email.

public sendPasswordResetEmail(string $email, string $username, string $token, DateTimeImmutable $expires) : bool
Parameters
$email : string

Recipient email

$username : string

Recipient username

$token : string

Reset token (plaintext)

$expires : DateTimeImmutable

Token expiration time

Tags
throws
RuntimeException

If email sending fails and mail is enabled

Return values
bool

True if sent successfully

buildPasswordResetHtml()

Build HTML email body.

private buildPasswordResetHtml(string $username, string $resetUrl, string $expiry) : string
Parameters
$username : string

Username for greeting

$resetUrl : string

The password reset URL

$expiry : string

Expiration time formatted

Return values
string

HTML email body

buildPasswordResetPlainText()

Build plain text email body.

private buildPasswordResetPlainText(string $username, string $resetUrl, string $expiry) : string
Parameters
$username : string

Username for greeting

$resetUrl : string

The password reset URL

$expiry : string

Expiration time formatted

Return values
string

Plain text email body

buildResetUrl()

Build the reset URL.

private buildResetUrl(string $token) : string
Parameters
$token : string

The reset token

Return values
string

loadConfigFromEnv()

Load email configuration from environment variables.

private loadConfigFromEnv() : array{enabled: bool, host: string, port: int, username: string, password: string, encryption: string, from_address: string, from_name: string}
Return values
array{enabled: bool, host: string, port: int, username: string, password: string, encryption: string, from_address: string, from_name: string}

send()

Send an email via SMTP.

private send(string $to, string $subject, string $body, string $altBody) : bool
Parameters
$to : string

Recipient email

$subject : string

Email subject

$body : string

HTML body

$altBody : string

Plain text alternative

Tags
throws
RuntimeException

If sending fails

Return values
bool

True if sent successfully


        
On this page

Search results