Feature Conflicting Files PR-6.2-dev Pending

User tests: Successful: Unsuccessful:

avatar laoneo
laoneo
24 Apr 2026
  • I read the Generative AI policy and my contribution is either not created with the help of AI or is compatible with the policy and GNU/GPL 2 or later.

Summary of Changes

The MailTemplate class should work with an injected MailerInterface and not concrete implementation to be more flexible. Additionally this pr deprecates the optional parameter to be able to remove the deprecated Factory usage.

Testing Instructions 1

  • Log in on the back end
  • Got to the global configuration server tab
  • Send a test mail

Actual result BEFORE applying this Pull Request

Mail is sent.

Expected result AFTER applying this Pull Request

Mail is sent.

Testing Instructions 2

  • Log in on the back end
  • Set HTML as mail format on /administrator/index.php?option=com_config&view=component&component=com_mails
  • Create a new user and enable Receive System Emails
  • Create a GET request task with the url https://downloads.joomla.org/api/v1/latest/cms and Manual execution as Execution Rule
  • In the advanced tab of the task form enable success notification and the respective user group from the previously created user image
  • Save the task
  • Click on the "Run Task"

Actual result BEFORE applying this Pull Request

Mail is sent with attachment in HTML format.

Expected result AFTER applying this Pull Request

Mail is sent with attachment in HTML format.

Link to documentations

Please select:

  • Documentation link for guide.joomla.org:

  • No documentation changes for guide.joomla.org needed

  • Pull Request link for manual.joomla.org: joomla/Manual#620

  • No documentation changes for manual.joomla.org needed

avatar laoneo laoneo - open - 24 Apr 2026
avatar laoneo laoneo - change - 24 Apr 2026
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 24 Apr 2026
Category Libraries
avatar laoneo laoneo - change - 24 Apr 2026
The description was changed
avatar laoneo laoneo - edited - 24 Apr 2026
avatar CSGoat0 CSGoat0 - test_item - 24 Apr 2026 - Tested successfully
avatar CSGoat0
CSGoat0 - comment - 24 Apr 2026

I have tested this item ✅ successfully on a59506a

I followed the instructions, everything works fine.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/47677.

avatar CSGoat0
CSGoat0 - comment - 24 Apr 2026

I have tested this item ✅ successfully on a59506a

I followed the instructions, everything works fine.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/47677.

avatar exlemor exlemor - test_item - 24 Apr 2026 - Tested successfully
avatar exlemor
exlemor - comment - 24 Apr 2026

I have tested this item ✅ successfully on a59506a

I have tested this successfully! Thanks @laoneo!


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/47677.

avatar exlemor
exlemor - comment - 24 Apr 2026

I have tested this item ✅ successfully on a59506a

I have tested this successfully! Thanks @laoneo!


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/47677.

avatar richard67 richard67 - change - 24 Apr 2026
Status Pending Ready to Commit
Labels Added: Feature PR-6.2-dev
avatar richard67
richard67 - comment - 24 Apr 2026

RTC


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/47677.

avatar richard67
richard67 - comment - 24 Apr 2026

RTC


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/47677.

2f5f271 26 Apr 2026 avatar laoneo is
avatar laoneo laoneo - change - 26 Apr 2026
Labels Added: RTC
avatar joomdonation
joomdonation - comment - 27 Apr 2026

I would question about the valid of this PR. Maybe someone with stronger OPP background should look at this more carefully

  • You modified code to allow using MailerInterface but in the code of MailTemplate class, you have code to check for a concrete implement. Is MailerInterface incomplete ?
  • In terms of features, although the intent is support MailerInterface, any implementation which is not Mail class will loose the functions provided by MailTemplate (because you hard code the check with a concrete implement before calling certain code):
  • Loose the feature to use custom SMTP parameters for each mail template
  • Lose the feature to handle attachments as string
avatar laoneo
laoneo - comment - 27 Apr 2026

All it does is to support the interface and doesn't restrict to the Mail class as we should work with interfaces. If you need these parameters like isHTML, then extend from Mail class. But there is no point to not work with interfaces. If I have a plugin which redirects everything to a custom Mailer service or whatever, there is no need to configure SMTP, etc. This brings a lot of flexibility while not loosing any settings from before.

avatar joomdonation
joomdonation - comment - 27 Apr 2026

I think it just a fake support to interface because if you pass any implement of the interface which is not a Mail instance, you will loose the features of MailTemplate which I mentioned earlier. Plus the support interface while having to check for concrete implement seems not right to me.

That's what I see from looking at the change in this PR. I will leave it to other maintainers and release managers to look at it further and make final decision.

avatar laoneo
laoneo - comment - 27 Apr 2026

Due all respect, but your comment doesn't make sense at all. This is how support for the interface should be implemented in a backwards compatible way. Mailer instances which come from the factory doesn't have to be always a Mail class. If a plugin would implement it's own mailer (which is not a Mail class) and set it in the global container, then this code would badly break. When this gets merged, then we can convert the rest of the code away from Factory::getMailer, otherwise we will have to life forever with it.

avatar joomdonation
joomdonation - comment - 27 Apr 2026

Sorry, I do not see the point of supporting interface causing loosing features of MailTemplate. I have expressed my concerns in my earlier comments, it's normal that you do not agree or I am wrong. Let's wait for feedbacks from others.

avatar joomdonation
joomdonation - comment - 27 Apr 2026

Sorry, I do not see the point of supporting interface if it causes loosing features of MailTemplate. I have expressed my concerns in my earlier comments, it's normal that you do not agree or I am wrong. Let's wait for feedbacks from others.

avatar laoneo
laoneo - comment - 27 Apr 2026

No problem, don't expect it either.

avatar MacJoom
MacJoom - comment - 29 Apr 2026

I would like to have two new tests - with Html tested.

avatar MacJoom
MacJoom - comment - 29 Apr 2026

I would like to have two new tests @exlemor , @CSGoat0 - with Html tested.

avatar richard67 richard67 - change - 29 Apr 2026
Status Ready to Commit Pending
avatar richard67
richard67 - comment - 29 Apr 2026

Back to pending. See previous comment.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/47677.
avatar richard67
richard67 - comment - 29 Apr 2026

Back to pending. See previous comment.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/47677.
avatar MacJoom
MacJoom - comment - 29 Apr 2026

Please test attachments too.

avatar laoneo laoneo - change - 30 Apr 2026
The description was changed
avatar laoneo laoneo - edited - 30 Apr 2026
avatar laoneo
laoneo - comment - 30 Apr 2026

I'v updated the testing instructions with HTML and attachment test.

avatar laoneo laoneo - change - 30 Apr 2026
The description was changed
avatar laoneo laoneo - edited - 30 Apr 2026
avatar laoneo laoneo - change - 30 Apr 2026
Labels Removed: RTC
avatar joomla-cms-bot joomla-cms-bot - change - 30 Apr 2026
Category Libraries Libraries Front End Plugins
avatar joomla-cms-bot joomla-cms-bot - change - 13 May 2026
Category Libraries Front End Plugins Administration com_config Libraries Front End Plugins
avatar MacJoom
MacJoom - comment - 13 May 2026

We had some changes - @CSGoat0 , @exlemor could you test again - Thank you very much.

avatar CSGoat0
CSGoat0 - comment - 20 May 2026

Hi @laoneo, Thanks for the PR.
This is the testing I've done but I am not sure about the conclusion.


Testing Results

Environment

  • Localhost using Laragon
  • Emails are received in folder: C:\laragon\bin\sendmail\output

Testing Instructions Performed

Test 1: Basic Mail Functionality

  1. Logged in to the Joomla back end
  2. Navigated to System → Global Configuration → Server tab
  3. Sent a test mail

Result BEFORE PR: Mail is sent from only the main email (first user) to the sender who sent the test email (first or second user). The sender is constant (first user). Either it's first or second user who sent the mail, the sender is always the first user's email.

Result AFTER PR: Same behavior - mail is sent successfully.

Test 2: HTML Mail with Task Scheduler

  1. Set HTML as mail format: System → Templates → Mail Templates → Options (top right)
  2. Created a new user and enabled Receive System Emails
  3. Created a GET request task:
    • URL: https://downloads.joomla.org/api/v1/latest/cms
    • Execution Rule: Manual execution
  4. In the Advanced tab of the task form:
    • Notification → Task Success → Enable
    • Selected the respective user group from the previously created user
  5. Saved the task
  6. Clicked Run Task

Result BEFORE PR:

  • The email is always sent FROM the main email (first user)
  • The email is always sent TO the main email (first user)
  • The configured user group (second user) receives NO email regardless who sent/create the task.

Result AFTER PR:

  • Exactly the same behavior as BEFORE the PR
  • No change observed

Additional Testing

  • Triggered the task from the second user's backend (after recreating the task as the second user)
  • Result: Still FROM the first user's email TO the first user's email
  • The second user never receives any notification email regardless of who creates or triggers the task

Summary

Both the normal branch and this PR have the same functionalities. The task success notification always uses the first user who created the task as both sender and receiver, ignoring the configured user group in the notification settings.
I get this attachment in the email:

{"branches":[{"branch":"Joomla! 1.0","version":"1.0.15"},{"branch":"Joomla! 1.5","version":"1.5.26"},{"branch":"Joomla! 2.5","version":"2.5.28"},{"branch":"Joomla! 3","version":"3.10.12"},{"branch":"Joomla! 4","version":"4.4.14"},{"branch":"Joomla! 5","version":"5.4.5"},{"branch":"Joomla! 6","version":"6.1.0"}]}

Questions

Is this the expected output?

If this is the intended behavior for task success notifications (always going to the main user from the main user regardless of who sent/create it, not to configured user groups), then I will mark this test as successful as there are no regressions introduced by this PR.

Note: Receiver changes in the Test 1: Basic Mail Functionality

Could you please clarify?

avatar laoneo
laoneo - comment - 20 May 2026

Is the behavior the same as without the patch? If yes, then it looks like you probably found a bug.

avatar CSGoat0
CSGoat0 - comment - 20 May 2026

Is the behavior the same as without the patch? If yes, then it looks like you probably found a bug.

It's the same behavior before and after the patch.
Mail system might be not accurate due to testing on local host. Maybe It needs a real host.

avatar laoneo
laoneo - comment - 20 May 2026

If it is the same as before the patch then it would be good if you can open an issue and mark your test as successful.

avatar CSGoat0 CSGoat0 - test_item - 2 Jun 2026 - Tested successfully
avatar CSGoat0
CSGoat0 - comment - 2 Jun 2026

I have tested this item ✅ successfully on 6d52d72

Sorry for late reply, didn't notice the message.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/47677.

avatar CSGoat0
CSGoat0 - comment - 2 Jun 2026

I have tested this item ✅ successfully on 6d52d72

Sorry for late reply, didn't notice the message.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/47677.

avatar github-actions[bot]
github-actions[bot] - comment - 5 Jun 2026

This pull request has conflicts, please resolve those before we can evaluate the pull request.

avatar laoneo laoneo - change - 9 Jun 2026
Labels Added: Conflicting Files
avatar brianteeman brianteeman - test_item - 12 Jun 2026 - Tested successfully
avatar brianteeman
brianteeman - comment - 12 Jun 2026

I have tested this item ✅ successfully on b180180

tested plain, html and html with attachments


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/47677.

avatar brianteeman
brianteeman - comment - 12 Jun 2026

I have tested this item ✅ successfully on b180180

tested plain, html and html with attachments


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/47677.

Add a Comment

Login with GitHub to post a comment