phpBB email,
finally
professional.
VaultMail hooks into phpBB’s notification pipeline and replaces its plain-text mailer with a fully ACP-driven HTML email system — per-type templates, multilingual variants, three sending backends, and a privacy-first audit log.
use vaultbb\vaultmail\vaultmail\api;
/** @var api $mailer */
$mailer = $this->container->get(‘vaultbb.vaultmail.api’);
if ($mailer->isAvailable()) {
$ok = $mailer->send(
‘registration_welcome’,
‘[email protected]‘,
[‘username’ => ‘Elara’],
‘my_extension’
);
}
// Returns true — logged, templated, dispatched.
// ✓ sent · smtp · 0.43ms
What phpBB ships with.
What your forum deserves.
- −Plain-text emails only — no HTML
- −Hardcoded .txt template files
- −No per-type control or enabling
- ~Multilingual via per-lang .txt files — no ACP editor, no per-type variant control
- ~PHP mail() + board SMTP — no per-send switching, no API/transactional providers
- −No password-changed confirmation email
- ~Basic global test mode — no per-type sandbox, no catch-all address redirect
- −No delivery audit log
- −No developer API for third-party sends
- +Full HTML templates with branded shell
- +ACP template editor with live preview
- +Enable/disable VaultMail per email type
- +ACP-managed language variants — per type, with fallback chain
- +Per-send backend switching: PHPMail · SMTP · Transactional API
- +New types phpBB never had: mod queue alert, password changed
- +Per-type sandbox with catch-all address redirect and log status
- +Metadata audit log — body never stored
- +DI-native developer API for third-party extensions
− Not available ~ Available but limited — VaultMail adds ACP control, flexibility, or missing capability
How VaultMail intercepts
phpBB’s mail pipeline
phpBB fires notification
Any outgoing email — activation, PM, report — passes through phpBB’s messenger class and notification system.
Hook captures context
The core.modify_notification_template event fires. VaultMail captures the template filename and raw phpBB variables via reflection.
Type is resolved
The Resolver maps the template file to one of 20 VaultMail keys via FILE_MAP — language-independent, zero body parsing.
Template is rendered
Your HTML template is fetched from DB, the correct language variant is selected, and variables are injected via two-layer extraction.
Sent & logged
Dispatched via your configured backend. Metadata written to audit log — recipient, template key, status, backend. Body never stored.
Nine reasons your
forum email transforms.
From ACP-managed HTML templates to privacy-safe logging — every feature designed for forum admins who actually care about their members’ experience.
vaultbb.vaultmail.api from phpBB’s DI container. Send any template programmatically — language, rendering, logging, and dispatch handled automatically.Every email type,
under your control.
13 email templates covering registration, account management, subscriptions, messaging, and moderation. Some types — like password confirmation and moderation queue alerts — go beyond what phpBB sends by default.
| Template Key | Description | Category | Origin |
|---|---|---|---|
| registration_welcome | Registration — Welcome Email | Registration | phpBB Core |
| registration_activation | Registration — Email/Admin Activation | Registration | phpBB Core |
| registration_admin_approve | Registration — Admin Approval Required | Registration | phpBB Core |
| password_reset | Account — Password Reset Request | Account | phpBB Core |
| password_changed | Account — Password Changed Confirmation | Account | VaultMail ✦ |
| email_change_verify | Account — Email Address Change Verification | Account | phpBB Core |
| private_message_notify | Private Messages — New PM Notification | Messaging | phpBB Core |
| thread_subscription | Subscriptions — New Reply in Watched Topic | Subscriptions | phpBB Core |
| forum_subscription | Subscriptions — New Topic/Reply in Watched Forum | Subscriptions | phpBB Core |
| report_notification | Moderation — New Report Submitted | Moderation | phpBB Core |
| moderation_queue_alert | Moderation — Post/Topic Awaiting Approval | Moderation | phpBB Core |
| mass_mail | Admin Tools — Mass Email to Users | Admin | phpBB Core |
| contact_us_admin | Contact — Contact Form Submission to Admin | Contact | phpBB Core |
✦ VaultMail registers this template — phpBB has no built-in email for this event. Showing all 13 templates. Shell template (shell_default) is omitted — it is the wrapper, not an email type.
One extension.
Three ways to deliver.
Switch backends in ACP settings — no code changes, no reinstall. Live connection testing built in before you go live.
Delegates to phpBB’s built-in mail handler. Zero configuration — ideal for shared hosting. Lowest friction to get started.
- Zero configuration required
- Shared hosting compatible
- Instant setup
Connect directly to your SMTP server. Full authentication, TLS and STARTTLS support. Gmail, Outlook, Mailjet, and any standard provider.
- TLS / STARTTLS encryption
- Full SMTP authentication
- Custom host and port
- Live connection test
Send via JSON API. Pre-built profiles for Mailgun, SendGrid, and Postmark. Or supply your own endpoint and auth configuration.
- Mailgun · SendGrid · Postmark
- Custom endpoint support
- Bearer or custom header auth
- Live connection test
Send from any extension.
Zero boilerplate.
VaultMail is natively integrated with phpBB’s dependency injection container. Resolve the API service, check availability, and send — rendering, language selection, backend routing, and logging are all handled for you.
* @var \vaultbb\vaultmail\vaultmail\api
*/
protected $vaultmail;
// Resolve from DI container in constructor
public function __construct(
\vaultbb\vaultmail\vaultmail\api $vaultmail
) {
$this->vaultmail = $vaultmail;
}
public function on_user_registered($event) {
if (!$this->vaultmail->isAvailable()) return;
$this->vaultmail->send(
‘registration_welcome’,
$event[‘user_row’][‘user_email’],
[‘username’ => $event[‘user_row’][‘username’]],
‘my_extension’ // triggered_by label
);
}
vaultbb.vaultmail.api directly in your service definition. No static calls, no global state — idiomatic phpBB extension code.isAvailable() before sending — returns false safely if VaultMail is not installed or is disabled. Your extension never breaks on boards without VaultMail.triggered_by set to your extension name — fully traceable and auditable alongside native phpBB sends.sendRaw() accepts subject and body directly — still logged, still dispatched via the configured backend.Know what was sent.
And what wasn’t.
Metadata-only logging by design. Recipient, template key, language, backend, status, triggered-by source — all recorded. Email body never stored. Configurable retention, ACP search, and log purging built in.
| Timestamp | Recipient | Template Key | Lang | Backend | Status | Triggered By |
|---|---|---|---|---|---|---|
| 2026-02-24 14:32 | [email protected] | registration_welcome | english | smtp | ● sent | phpbb_core |
| 2026-02-24 14:28 | [email protected] | private_message_notify | english | smtp | ● sent | phpbb_core |
| 2026-02-24 14:21 | [email protected] | password_reset | english | smtp | ● test | phpbb_core |
| 2026-02-24 14:15 | [email protected] | ban_notification | english | api | ● sent | vaultmail_hook |
| 2026-02-24 13:59 | [email protected] | moderation_queue_alert | english | api | ● failed | vaultmail_hook |
| 2026-02-24 13:44 | [email protected] | thread_subscription | french | smtp | ● sent | phpbb_core |
| 2026-02-24 13:30 | [email protected] | registration_welcome | english | smtp | ● delegated | my_extension |
Your forum deserves
better email.
One extension. Every feature. The email system phpBB should have shipped with.