Set Joomla instance to use PHP Mail or Sendmail.
Perform some activity that causes email to be sent (registration, contact).
Generated email is sent without issue
Error: Could not instantiate mail function.
Joomla 4 or 5 on Siteground hosting
Some systems fail when attempting to send email which has the recipient name and email set to the same value (501 error).
libraries/src/Mail/MailTemplate.php
* @since 4.0.0
*/
public function addRecipient($mail, $name = null, $type = 'to')
{
$recipient = new \stdClass();
$recipient->mail = $mail;
$recipient->name = $name ?? $mail; <<<<====
$recipient->type = $type;
$this->recipients[] = $recipient;
}
addRecipient() is often called with only an email address, which causes the name to be set to the same as email.
This is causing failure on some servers (or their mail servers).
$recipient->name = $name ?? strstr($mail,'@',true);
All Joomla calls to this addRecipient() method provide an appropriate name argument.
Labels |
Added:
No Code Attached Yet
|
Labels |
Added:
bug
|
I have this problem, I'm following the discussion.
BUMP
It is kind of server protection from users who trying to send spam. I think Joomla should not try to set a name if it not provided, it is totally fine to have only an email.
No, I have always used dedicated servers or at most VPS.
Unfortunately, I'm not sure whether the issue is caused by the new Joomla versions or the new servers...
I see that Joomla is unable to use phpmail or sendmail. I don't know how long this issue has existed because I remember it working in the past, and I haven't noticed exactly when it stopped functioning.
On my server, I can get phpmail to work, but only with the "-f" parameter on the sender.
Honestly, I'm not sure whether the problem is with the server or Joomla, but I am certain that there are no restrictions on port 25 or email sending from my host.
It is kind of server protection from users who trying to send spam.
I think Joomla should not try to set a name if it not provided, it is totally fine to have only an email.