View Issue Details

IDProjectCategoryView StatusLast Update
0035288mantisbtemailpublic2025-08-29 23:48
Reportervboctor Assigned Tovboctor  
PrioritynormalSeverityfeatureReproducibilityN/A
Status resolvedResolutionfixed 
Product Version2.27.0 
Target Version2.28.0Fixed in Version2.28.0 
Summary0035288: Support custom email sending providers
Description

Abstract the email sending logic into a provider class and allow overriding such provider. This provides the following advantages:

  1. Separation of sending mechanics from the queue management and pre-processing of email content.
  2. Allow replacing PhpMailer with other providers - e.g. send via Mailgun, Sendgrid, Postmark, etc. Even though these providers support SMTP, it is often faster and more feature-rich to use their HTTP API.
  3. Ability to implement test providers to improve testability.
TagsNo tags attached.

Relationships

related to 0035305 closeddregad PHPMailer - AWS SES (about configuration-set) 

Activities

vboctor

vboctor

2025-02-02 03:45

manager   ~0069811

PR: https://github.com/mantisbt/mantisbt/pull/2088

atrol

atrol

2025-08-24 09:04

developer   ~0070462

@vboctor this change introduced a regression

Getting the following warning on admin/email_queue.php page after pushing the Send Mail button.

SYSTEM WARNING

'Undefined array key "hostname"' in '.../core/email_api.php' line 1451
Please use the "Back" button in your web browser to return to the previous page. There you can correct whatever problems were identified in this error or select another action. You can also click an option from the menu bar to go directly to a new section.
vboctor

vboctor

2025-08-24 21:52

manager   ~0070464

@atrol Good catch. I created the following PR to fix it:

PR: https://github.com/mantisbt/mantisbt/pull/2147

Related Changesets

MantisBT: master c6460801

2025-02-02 03:13

vboctor


Details Diff
Implement EmailMessage to manage email message info

Fixes 0035288
Affected Issues
0035288
add - core/classes/EmailMessage.class.php Diff File

MantisBT: master 7c084cad

2025-02-02 03:14

vboctor


Details Diff
Implement EmailSender abstract class

Fixes 0035288
Affected Issues
0035288
add - core/classes/EmailSender.class.php Diff File

MantisBT: master 990dd335

2025-02-02 03:14

vboctor


Details Diff
Implement PHPMailer sender provider

Fixes 0035288
Affected Issues
0035288
add - core/classes/EmailSender.PhpMailer.class.php Diff File

MantisBT: master 5ba6efb9

2025-02-02 03:14

vboctor


Details Diff
Update `email_api.php` to use email sender provider

Fixes 0035288
Affected Issues
0035288
mod - core/email_api.php Diff File

MantisBT: master 9d81e545

2025-02-02 03:33

vboctor


Details Diff
Support configuration for email send provider

Fixes 0035288
Affected Issues
0035288
mod - config_defaults_inc.php Diff File
mv - core/classes/EmailSender.PhpMailer.class.php → core/classes/EmailSenderPhpMailer.class.php Diff File
mod - core/email_api.php Diff File

MantisBT: master d88904ce

2025-02-02 03:42

vboctor


Details Diff
Update config documentation for email send provider

Fixes 0035288
Affected Issues
0035288
mod - config_defaults_inc.php Diff File
mod - docbook/Admin_Guide/en-US/config/email.xml Diff File

MantisBT: master 39ac5b2a

2025-02-02 03:56

vboctor


Details Diff
Misc fixes

Fixes 0035288
Affected Issues
0035288
mod - core/classes/EmailSenderPhpMailer.class.php Diff File
mod - core/email_api.php Diff File

MantisBT: master 5fc3fa01

2025-02-08 18:13

vboctor


Details Diff
Support email send providers as plugins

Fixes 0035288
Affected Issues
0035288
mod - config_defaults_inc.php Diff File
mod - core/email_api.php Diff File
mod - core/events_inc.php Diff File
mod - docbook/Admin_Guide/en-US/config/email.xml Diff File
mod - docbook/Developers_Guide/en-US/Events_Reference_Notify.xml Diff File

MantisBT: master b9e8ba6c

2025-03-02 04:18

vboctor


Details Diff
Remove usage of DIRECTORY_SEPARATOR

Fixes 0035288
Affected Issues
0035288
mod - core/classes/EmailSender.class.php Diff File
mod - core/classes/EmailSenderPhpMailer.class.php Diff File

MantisBT: master e5a5790a

2025-03-02 04:21

vboctor


Details Diff
Added doc in admin guide referring to TestEmailSender plugin

Fixes 0035288
Affected Issues
0035288
mod - docbook/Admin_Guide/en-US/config/email.xml Diff File

MantisBT: master 2a458bb8

2025-03-02 04:49

vboctor


Details Diff
Move pre-processing of headers to core code

Fixes 0035288
Affected Issues
0035288
mod - core/classes/EmailSender.class.php Diff File
mod - core/classes/EmailSenderPhpMailer.class.php Diff File
mod - core/email_api.php Diff File

MantisBT: master 18170606

2025-03-02 04:59

vboctor


Details Diff
Allow inheriting from EmailSenderPhpMailer and injecting headers

Fixes 0035288
Affected Issues
0035288
mod - core/classes/EmailSenderPhpMailer.class.php Diff File

MantisBT: master 197d901a

2025-03-02 05:07

vboctor


Details Diff
Fix missing headers

Fixes 0035288
Affected Issues
0035288
mod - core/email_api.php Diff File

MantisBT: master 1fc7edc3

2025-03-02 06:03

vboctor


Details Diff
Simplifying the logic for header injection and having better context

Fixes 0035288
Affected Issues
0035288
mod - core/classes/EmailSenderPhpMailer.class.php Diff File

MantisBT: master 501d5f7c

2025-03-09 12:18

dregad


Details Diff
Email Sending Providers

Issue 0035288, PR https://github.com/mantisbt/mantisbt/pull/2088
Affected Issues
0035288
mod - config_defaults_inc.php Diff File
add - core/classes/EmailMessage.class.php Diff File
add - core/classes/EmailSender.class.php Diff File
add - core/classes/EmailSenderPhpMailer.class.php Diff File
mod - core/email_api.php Diff File
mod - core/events_inc.php Diff File
mod - docbook/Admin_Guide/en-US/config/email.xml Diff File
mod - docbook/Developers_Guide/en-US/Events_Reference_Notify.xml Diff File

MantisBT: master b7512095

2025-08-24 21:50

vboctor


Details Diff
Fix / improve test email admin functionality

Fixes 0035288
Affected Issues
0035288
mod - admin/email_queue.php Diff File
mod - core/email_api.php Diff File