Error sending email could not instantiate mail function

В этой статье рассмотрены случаи, когда Joomla не отправляем письма. Разобраны причины и способы их устранения.

В этой статье мы рассмотрим проблемы, возникающие с отправкой почты на CMS Joomla.

Наиболее часто встречаются ошибки вида «Could not instantiate mail function.» и «Не удалось вызвать функцию mail», также бывают случаи, когда никакой ошибки не отображается, тем не менее письма не приходят на почту. На всех этих случаях мы остановимся подробнее далее, если у вас возникают проблемы с отправкой почты по протоколу SMTP, то вам будет полезна эта статья.

Ошибки, описанные выше, могут быть вызваны рядом причин. В этой статье я попытался систематизировать информацию по проблемам с отправкой писем на Joomla и их решениям.

1. Вы настраиваете модуль обратный связи, отправку почты и тп на локальном сервере.

На локальных серверах вроде Denver или WAMP по умолчанию стоят заглушки, которые препятствуют отправке писем. Как правило, после переноса сайта на хостинг эти проблемы пропадут.

2. Вы получаете письма на yandex или mail почту.

Эти почтовые службы с большим подозрением относятся к получаемым сообщениям. Если, например, ваш сайт висит на одном IP c рассыльщиками спама, велика вероятность, что и вы попадете в список подозрительных отправителей и будете получать сообщения в папку спам либо с большой задержкой либо сообщения в принципе не будут доходить. Как можно решить эту проблему? Ниже мои советы от простого к сложному.

2а. Если письмо нашлось в спаме, просто добавьте адрес с которого оно пришло в адресную книгу, после этого письма начнут приходить в основные папки.

2б. Настройте отправку через SMTP. Это можно сделать буквально за 5 минут, инструкцию можно найти здесь. На мой взгляд самый простой и надежный способ.

2в. Если отправка через SMTP вам не подходит, можно попробовать создать ящик на вашем хостинге, он будет выглядеть примерно так название_ящика@ваш_домен.ru и добавить его в поле email-сайта на вкладке сервер. Почтовый сервер будет видеть в исходящих почту с вашим доменом и траст письма повысится. Сделать это можно в панели администратора, «System->Global configuration» («Система->Общие настройки»). В этом разделе открыть вкладку Server (Сервер) и в правом нижнем углу найти настройки отправления почты.

options

2г. Настройте spf. Spf это верификация вашего домена, настраивается на хостинге за пару минут при наличие инструкции. Так как я не знаю ваш хостинг, то инструкцию вам придется найти самостоятельно, обычно достаточно набрать в поиске что-то вроде «spf beget» (бегет это мой хостинг) и открыть первую ссылку. Перед гуглением можно попробовать посмотреть здесь, там размещены настройки для кучи популярных хостингов.

2д. Настроить DKIM. DKIM это цифровая подпись, настраивается тоже по инструкции хостинга, но в отличие от spf услуга может быть платной. Перед приобретением рекомендую вам связаться со своим хостером и уточнить возможные причины не прихода писем.

3. Проблемы с PHP Mailer.

Довольно распространенный случай. В Joomla предусмотрено 3 механизма отправки писем: PHP Mail, Sendmail и SMTP. По-умолчанию используется первый и с ним зачастую бывают проблемы. Ниже я предлагаю несколько путей решения проблемы.

2a. Самый простой способ решить проблему, это изменить способ отправки на Sendmail. Для этого в панели администратора надо перейти в «System->Global configuration» («Система->Общие настройки»), где открыть вкладку Server (Сервер). Справа внизу вы увидите настройки почты, в поле «Mailer» («Способ отправки») в выпадающем списке надо выбрать «Sendmail». Можно также поменять способ отправки на SMTP, как это сделать читайте здесь.

Joomla не отправляются письма

3б. Также можно попробовать починить PHP Mailer вручную . Для этого надо найти и открыть файл:»корень сайта/libraries/phpmailer/phpmailer.php» или «корень сайта/libraries/vendor/phpmailer/phpmailer/class.phpmailer.php» для поздних версий джумлы. Далее найти строчку:

$params = sprintf(‘-oi -f %s’, $this->Sender);

Вероятный номер строки 707 или 1161. И дописать под ней:

$params = ‘ ‘;

Ваш код теперь выглядит так:

if (empty($this->Sender)) {

$params = ‘-oi -f %s’;

} else {

$params = sprintf(‘-oi -f %s’, $this->Sender);

$params = ‘ ‘;

}

Или в случае более поздней версии заменить искомую строку:

Код:
$params = sprintf(‘-f%s’, $this->Sender);

Меняется на:
$params = sprintf(‘-f%s’);

4. Проблемы с хостингом.

Возможно вы используете бесплатный тариф, на котором закрыта отправка писем или он включает этот функционал по требования. Как бы то ни было, вам нужно написать в службу поддержки и объяснить проблему.

Are you stuck with “PHPMailer could not instantiate mail function”?

PHPMailer helps to send emails safely and easily from a web server. However, it often errors out due to misconfigurations of the mail() function, absence of local mail server and so on.

At Bobcares, we often receive requests to fix this error as part of our Server Management Services.

Today, let’s have a deep look at this error and see how our Support Engineers fix PHPMailer easily.

Why does PHPMailer could not instantiate mail function occurs?

As we all know, PHPMailer is a popular code for sending email from PHP. And, many open-source projects like WordPress, Drupal, etc use them.

PHPMailer validates email addresses automatically and protects against header injection attacks.

Developers often prefer sending mail from their code. And, mail() is the only PHP function that supports this.

But, sometimes the incorrect PHP installation fails to call the mail() function correctly. This will cause mail function errors.

Similarly, in some cases, the absence of a local mail server will also cause this error.

How to fix “PHPMailer could not instantiate mail function”?

So far we have discussed the error in detail. Now, let’s have a look at some of its top fixes.

There are alternative ways to resolve this error easily.

1. Using SMTP to send the email

As we have already said, if the PHP installation is not configured to call the mail() function correctly, it will cause the error.

So, in such cases, it is better to use isSMTP() and send the email directly using SMTP.

This is faster, safer and easier to debug than using mail(). This will resolve the error easily.

2. Install a local mail server

The PHP mail() function usually sends the mail via a local mail server.

So, using SMTP will not resolve the error if a mail server is not set up on the localhost.

Therefore, it is necessary to install a local mail server. For instance, we can install PostFix to the server using the below command.

sudo apt-get install postfix

3. Other Solutions

The PHP mail() function works with the Sendmail binary on Linux, BSD, and macOS platforms.

So, it is important to ensure that the sendmail_path points at the Sendmail binary, which is usually /usr/sbin/sendmail in php.ini.

Similarly, sometimes when we try to send large emails, it returns “Could not instantiate mail function” error along with  “Cannot send message: Too big” message in the PHP error log.

This means the mail transfer agent is refusing to deliver these emails.

So, we need to configure the MTA to allow larger attachments to resolve the error.

[Still facing difficulty to fix PHPMailer error?- We’ll help you.]

Conclusion

In short, PHPMailer could not instantiate mail function occurs due to misconfigurations of the mail() function, absence of local mail server and so on. In today’s writeup, we discussed this error in detail and saw some of the major fixes by our Support Engineers.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

Joomla — хороший движок, но не идеальный. Даже на таком удобном конструкторе могут выскакивать весьма неудобные проблемы. К примеру, в CMS Joomla выскакивает белый экран при входе в админку. Либо возникают ошибки в результате активации человекопонятных ссылок в настройках.

Но одна из самых распространенных и непонятных для многих вебмастеров ошибка — это «сould not instantiate mail function».

Такое случается, когда вам не удалось вызвать функцию отправления электронного письма при помощи движка Joomla. Рассмотрим возможные причины возникновения ошибки и методы ее решения.

135

Почему не удалось вызвать функцию отправки на имейл в Joomla

Итак, попробуем определить причину появления навязчивого сообщения «сould not instantiate mail function» и почему не удалось вызвать функцию в разных ситуациях.

Первая причина, почему выскочила надпись «сould not instantiate mail function» при попытки отправить письмо на имейл — это ваш хостинг, а точнее ваш локальный сервер. Часто вебмастера перед тем, как что-то устанавливать на сайт или перед его публикацией, проводят эксперименты вдали от сети Интернет — у себя на компьютере на созданном виртуальном сервере. Если вы сейчас редактируете содержимое сайта именно при помощи локального сервера, то функцию не удалось вызвать по очень простой причине — у вас на компьютере нет куда отправлять имейл. То есть у вас нет сервера для отправки электронных писем. И неважно какой именно локальный хост вы используете, WAMP или Денвер — вы все равно не сможете отправлять с него электронные письма.

Порой надпись «сould not instantiate mail function» появляется, но не при каждом отправлении письма. К примеру, когда вы делаете рассылки своим подписчикам и из тысячи человек 20 не получают письма, так как не удалось вызвать эту функцию в Joomla. В таком случае объяснение простое — они ввели неправильный адрес электронной почты, когда подписывались на вашу рассылку. Решить такую проблему невозможно — придется удалить невнимательных подписчиков.

joomla-3.0-smtp-mail-settings

Иногда Joomla выдает надпись «сould not instantiate mail function» из-за того, что вы ввели в данных отправки какие-то специальные символы, которые сервер не воспринимает. Особенно часто эту случается в тех случаях, когда вы создаете скрипт рассылки и указываете в нем имя пользователя с какими-то особыми знаками. Если это так, то чтобы удалось вызвать функцию отправки электронного письма в Joomla, вам необходимо нажать пункт Yes возле графы Adds Names, чтобы сервис добавлял имена в письма и воспринимал специальные символы.

Еще одна причина, по которой вместо отчета об отправке сообщений вы увидите «сould not instantiate mail function» — это недействительный донорский адрес имейл. Дело в том, что даже если сообщения отправляет ваш сервер, они не придут получателю, если не будет указан отправитель. Возможно, вы указали неверный имейл отправителя, ведь эта почта должна быть зарегистрирована на вашем доменном имени.

Если все перечисленные причины не подходят для вашего случая, то попытайтесь разведать обстановку у хостинг-провайдера. Очень часто на хостинге ставят ограничения для различных услуг. Таким образом они завлекают клиентов покупать пакеты подороже. Есть вероятность, что не удалось вызвать функцию отправки сообщений в Joomla как раз из-за подобных ограничений. В частности, хостинг-провайдер мог поставить максимальный предел количества отправленных сообщений за час. Если это так, то вам остается немного подождать, чтобы отправить очередную партию электронных писем, либо приобрести пакет подороже, чтобы снять установленное ограничение.

Существуют и другие причины, из-за чего вылетает сообщение «сould not instantiate mail function» на сайте с движком Joomla. И вполне вероятно, что причины эти снова кроются в ограничениях вашего хостинга. Вам стоит заранее разведать допустимые параметры электронных сообщений для отправки, чтобы потом не возникало проблем. К примеру, некоторые хостинги априори отказывают отправлять сообщения, если в них закреплены какие-то файлы. Возможно, таким образом они пытаются избежать прецедентов спам-рассылок, а с другой стороны — не хотят отправлять слишком большие массивы информации, нагружая тем самым сервера. В любом случае вам нужно разведать обстановку в технической службе поддержки, а потом искать пути решения.

server-settings-image

И последняя причина, по которой надпись «сould not instantiate mail function» не дает вам отправить электронные письма — это ошибки в поле «Тема» при отправке. Вы должны знать, какие лимиты длины «Темы» установлены на сервере. Превышение лимита — это однозначный отказ к отправке. Да и не стоит делать рассылку с громоздкими заголовками — это не эффективно. С другой стороны, вы могли использовать в пункте «Тема» какие-то запрещенные символы. В любом случае вам поможет поддержка!

joomla-3-email-errors

If your Joomla server does not support the php mail() function and Joomla attempts to send an email (such as a new user registration email), any of the following message may appear:

  • Could not instantiate mail function.
  • The mail() function has been disabled and the mail cannot be sent.
  • Registration failed: An error was encountered while sending the registration email. A message has been sent to the administrator of this site.

Not all servers support the php mail function, and if your Joomla hosting provider does not, you’re still in luck. To prevent the above error and to setup Joomla to be able to send email successfully, we have to adjust Joomla’s email settings. Besides the php mail function, Joomla 3.0 can use Sendmail or SMTP. In this tutorial, we are going to walk you through the steps for setting up SMTP with Joomla 3.0

Configuring Joomla 3.0 to send emails using SMTP:

  1. Configure your sending email account

    When emailing using SMTP, we are also going to setup SMTP Authentication. What this means is that we are going to setup Joomla to log into the server using a username and password, and then send email as that user. SMTP Authentication is much like using Microsoft Outlook or Mozilla Thunderbird: you enter your email settings, a password, and then you can use that email account.

    Creating email accounts is not the same on each hosting provider. If you use InMotion Hosting or use cPanel, click here to learn how to create an email address. Otherwise, you should contact your hosting provider for more help with setting up a new email account.

    Be sure to keep track of the email account and password that you use. In our testing, we created [email protected].

  2. Log into your Joomla 3.0 admin dashboard
  3. In the left menu, click the Global Configuration link
  4. In the tabs at the top of the page, click the Server tab
  5. In the right column, find the Mail Settings. Update the settings as we describe below, and then click the Save button in the top left of the page.
    Mailer Select SMTP
    From Email Enter the email address you created in step 1 above. In our testing, we entered [email protected]
    From Name Enter your name or the name of your website. In our testing, we entered Best Website Ever
    SendMail path Generally you can leave this setting alone
    SMTP Authentication Set SMTP Authentication to Yes
    SMTP Security If you want to send email, you may need to contact your hosting provider for the necessary settings. In our testing, set Security to SSL.
    SMTP Port As we are using SSL (see the setting above), we are setting the port to 465. Again, you may need to contact your joomla host for the correct settings.
    SMTP Username Enter the username of the email address you created in step 1.
    SMTP Password Enter the password of the email address you created in step 1.
    SMTP Host Most often, your STMP Host will be localhost. If you have any doubts, be sure you contact your joomla hosting provider for clarification.

    You can see in the screenshot below how the settings looked when we saved them in Joomla 3.0. We then signed up as a new user within our Joomla 3.0 website, and you can see how some of the SMTP settings we configured (such as From email and From Name) show up in our email client.

    SMTP Settings Within Joomla 3.0 An email sent by Joomla with our new SMTP Settings
    joomla-3.0-smtp-mail-settings email-sent-to-yahoo

Ok, Trying to help the community, I have to share my experience when this «Could not instantiate mail function.» appeared in my sites. :eek:

It is important all the right filling configurations in the joomla instalation, that is correct, must of the time if you are using a local STMP, you would have to filled like this:

:geek: Enter in Site — Global Configuration — Server, and in the mail settings you need to configure this way:

Mailer: PHP Mail Function
Mail from: [email protected]
From Name: Your site name
Sendmail Path:/usr/sbin/sendmail
SMTP Authentication: Yes
SMTP user name: youremail
SMTP password: the password of your email account
SMTP host: yahoo.gmail.whatever_it_is.com

Now, this do not work alone, you need to create a user with this email account, so after configure this, you need to go to:

Components — contacts, and then create your user.

After creating the user, the «MOST» important thing to check is that your server host is configure the way you need to all this works. So, if you are using Joomla 1.5 go to:

Help — System Info, you need to check in the tab PHP information the PHP Core info and look through the list till you find the SMTP info, it would have to look like this:

sendmail_from: [email protected]
sendmail_path: no value no value
serialize_precision: 100
short_open_tag: On
SMTP: yahoo.gmail.whatever_it_is.com
smtp_port: 25

If you are using Joomla 1.0.x then you have to go to:

System — System info and look in the PHP core list for the same values. :pop

Now, if you don´t have the PHP configure like this, the mail funtion would not work properly, and you will get that unnice message again and again.

I have had this problem quite often cause I run so many sites on my local computer and sometimes I just forget to configure that part in PHP and then I realize that it has not been configured till I have to test the contact component :o) so, this might help a bit to understand this when trying to use the SMTP service.

Ok, I hope this help to some of you, and tks to all people that makes this community the best way to learn and share knowledge :pop

Cheers!

A common error but a difficult one to fix without help. Learn how to do it in this article.

This message means that your mail server (the mailing part of your host) failed to send an email.

This is the most common error message you will get if you have trouble sending e-mails using your server and unfortunately, this error message does not tell you how you can solve the issue.

You can find a detailed explanation as to why your mail server failed to send the email in its logs file. You can ask your host for it.

Based on our experience, your mail server can fail to send emails for these reasons:

You are on a local server (using WAMP for example)

This kind of web server does not have a mail server so you can’t send e-mails from your local server.

What’s the solution? Well, you should configure AcyMailing to use an external SMTP server instead of using the php Mail function to test Acy but you can consider it will work on your live server

Your receiver e-mail address is not valid

Your mail server may refuse to deliver your message if the receiver e-mail address is not a valid one… So if you have this «could not instantiate mail function» for only a few of your subscribers, it may just be because their e-mail address is not valid!

You included a special character in the subject line

Some mail servers will refuse to deliver your message if it contains special characters in the subject such as a quote or a comma or any other kind of special character (ùïä)…

Please create a new Newsletter, specify a standard subject line («test» for example) and give it a new try.

You included a special character in the sender/receiver information

The same way, some mail server will refuse to deliver your message if the sender information contain special characters.

Please go on the AcyMailing configuration page, turn OFF the option «add Names» and give it a new try.

Your subject line is too long

Some mail server may not authorize you to deliver your message if the subject line is too long…

Change your subject line to a single word to make sure it’s not a problem of subjet length.

The bounce address you specified is not accepted by your server

Some servers won’t accept to deliver your message if you specify a bounce e-mail address.
Others will force you to apply a bounce address which belongs to your own domain…

Please go on the AcyMailing configuration page and leave the bounce address field empty.

You should specify a bounce e-mail address

Just like the previous point, some servers will only deliver messages if you specified a bounce e-mail address belonging to your own domain.

If removing the bounce e-mail address didn’t work, you should try to add it again and make sure it’s a valid e-mail address belonging to your own domain.

You already sent too many e-mails!

Most of hosting company will allow you send X e-mails per hour.
If you go over that limitation, the mail server will refuse to deliver more e-mails and will display this error message.
So for example if you successfully sent 480 e-mails and you can’t send e-mails any more, then it’s probably what happened and you should first wait one hour to deliver more e-mails and also make sure

AcyMailing is configured to stay below your sending limitations

.

You send multiple parts… and your host does not like it!

Some hosts won’t enable you to send multiple parts…
That definitely a parameter we recommend you to keep enabled but you should try to turn it OFF to see if that solves the «could not instantiate mail function» issue.
You will find this option under the «Mail Configuration» tab on the AcyMailing configuration page.

Your host does not allow attachments

Some hosts will not allow you to send a message with an attachment… so if you have this issue only on Newsletter with attachments, you could turn OFF the option «embed attachments» on the Acy configuration page to make sure Acy will add the file as a link in your message and not as a real attachment.

Still can’t make it work?

They provide with a really nice service and you will easily get rid of all those connexion issues.

0 Пользователей и 1 Гость просматривают эту тему.

  • 16 Ответов
  • 2037 Просмотров

Здравствуйте,

при создании нового материала зарегистрированным пользователем выдается Сообщение

Внимание
Could not instantiate mail function.

Сообщение
Материал успешно создан

Думаю, Joomla не может отправить мэйл администратору про то, что создан материал.
Но почему, не знаю, т.к. при регистрации, например, мэйлы админу приходят.
В установках системы -> сервер установлен PHP-мэйлер.

В чем дело, подскажите, пожалуйста.

скорее всего в том, что слишком часто отправлялась почта и почтовая система хостера вас поставила в бан на некоторое время. это, если отправлялось, а потом «вдруг» перестало отправляться.
попробуйте smtp сервер.

« Последнее редактирование: 08.06.2015, 23:59:56 от capricorn »

Записан

скорее всего в том, что слишком часто отправлялась почта и почтовая система хостера вас поставила в бан на некоторое время. это, если отправлялось, а потом «вдруг» перестало отправляться.
попробуйте smtp сервер.

Спасибо за ответ.

1) Нет, никакой почты вообще не отправлял.
Проблема возникла после перехода с J1.5 на J3.4.

2) Попробовал поставить SMTP ( своего сайта, эта почта работает).
Получаю

Внимание
SMTP Error: The following recipients failed:
info@gescxxxxxx.de

Сообщение
Материал успешно создан

Напомню, что при регистрации, например, мэйлы админу на этот адрес приходят (проверял при PHP-mail).

3) при Sendmail получаю

Внимание
Could not execute: /usr/sbin/sendmail -t -i

Сообщение
Материал успешно создан………

Копание в сети не помогло (англ., нем. как мог :-) ).
Такое чувство, что где-то надо разрешить что-то )).
Но знаний не хватает ((.

Может есть еще идеи?

« Последнее редактирование: 09.06.2015, 16:25:45 от lemur »

Записан

в таблице users есть такие, у кого нет email?

Спасибо.

в таблице users есть такие, у кого нет email?

Таких нет.
Я сделал второго админа, и теперь сообщение
«Could not instantiate mail function.»
стало выдаваться 2 раза.
Так же 2 раза для остальных значений — если поставить SMTP и Sendmail.

Так что, видимо, сообщение не отправляется администраторам, что, впрочем, и должно быть — кому еще надо )).

При этом, напомню, при регистрации и при обращении через форму «Контакт» — письма админу доходят.
Мистика ((.

Я бы уже (пока) отключил это сообщение, чтобы не пугать писателей, но не могу найти (если они есть) установки такого параметра.

я внимательно читаю, что вы пишете. в логе ошибок что-то есть?

Спасибо.
И извините простака (( — где и что надо смотреть?.

Если при регистрации юзера, почта, как вы говорите, приходит, независимо от настроек почты, а в другом случае не приходит, то лично у меня первое подозрение, что повреждены отдельные файлы после миграции. я говорю о логе ошибок php при неудачной отправке почты, вы можете его посмотреть? возможно, там можно что-то увидеть. или подсказать, как самому сделать этот лог?

« Последнее редактирование: 12.06.2015, 01:35:49 от capricorn »

Записан

Ну да, я и признался, что не знаю, где этот лог на сервере. (FileZilla не показывает)

На лок. WAMPSERVER я его нашел, но проблема есть на сервере рабочего сайта.

Буду благодарен за подсказку.

закачайте этот файл, назвав, его, например, errorlog.php, в папку /includes

затем в файле /index.php подключите его:

require_once JPATH_BASE . ‘/includes/errorlog.php’;

после строки:

require_once JPATH_BASE . ‘/includes/framework.php’;

после этого у вас появится в корне сайта файл errors.csv в случае ошибок. походите по сайту, попробуйте снова отправить почту и посмотреть на его содержимое.

это только первый шаг — на случай грубой ошибки.

заодно — попробуйте запросить хостера о лог файле его почтового сервера в интервале неудачной отправки почты. иногда предоставляют.

« Последнее редактирование: 12.06.2015, 02:09:12 от capricorn »

Записан

Удалена временная информация.

« Последнее редактирование: 12.06.2015, 15:28:00 от lemur »

Записан

после этого у вас появится в корне сайта файл errors.csv в случае ошибок. походите по сайту, попробуйте снова отправить почту и посмотреть на его содержимое.

Вот то, что появляется в errors.csv после ввода одного материала.

К сожалению, я не могу это никак протрактовать ((.
Буду очень рад вашему квалифицированному мнению.

P.S.
На всякий случай посмотрел указанные строки, но, к сож., не понял, что из этого вытекает.

Добавлю информацию:
Указанная в спойлере выдача получена при создании статьи администратором (кстати, поэтому сообщение Could not instantiate mail function выдается только одно — видимо, другому админу; когда вводит статью не админ, выдаются 2 сообщения, для 2-х админов)

« Последнее редактирование: 13.06.2015, 12:17:16 от lemur »

Записан

судя по логу ошибок, ничего серьезного. разве что попробовать переключиться на станд шаблон и отключить плагин jsntplframework.

для того, чтобы выяснить, проблема ли это с хостером, создайте чистую инсталляцию Joomla 3.4.1 и проверьте на ней. может в ходе миграции что-то «полетело».

если почта на домене сайта, то попросите хостера предоставить лог почтовика.

для того, чтобы выяснить, проблема ли это с хостером, создайте чистую инсталляцию Joomla 3.4.1 и проверьте на ней. может в ходе миграции что-то «полетело».

Спасибо, последовал вашему совету.
На новом «чистом» сайте результат такой же.

Но выяснилась и повторилась на рабочем сайте вот какая вещь для SMTP-мэйлинга.

При создании материала выдается след. сообщение:

Внимание
The following From address failed: 777—@mail.ru : MAIL FROM command failed,550,You are not allowed to use the domain mail.ru as a sender domain.

Сообщение
Материал успешно создан

Здесь 777—@mail.ru — емэйл «писателя», с которым он зарегистрировался на сайте.
Повторил ввод материала для другого пользователя. Опять такое же сообщение — с сответственно другим мэйлом.

Вывод (надеюсь, правильный) — при создании материала Joomla пытается отправить сообщение об этом админу с адреса писателя, к мэйл-серверу которого, конечно, нет доступа.
Хотя, вроде бы, должна была бы отправлять письмо с адреса сайта (который указан в разделе мэйлинга, и который используется при регистрации).
Наверное, при PHP-мэйлинге возникает та же проблема, только про адреса «отправителей» ничего не сообщается.

А почему так — уже не понимаю.

Конец кошмару!
Описываю только ответ, т.к. неясности остаются, а мэйлер, похоже, не имеет к проблеме отношения.

Вывод при создании нового материала сообщения
«Внимание
Could not instantiate mail function.»

прекратился после разрешения в UDDEIM (!) отправлять мэйлы о новых личных сообщениях.

Это совершенно непонятно, т.к
— в «чистой» Joomla (только с демонстр. данными) эти сообщения выдаются, хотя там никого UDDEIM нет (см. ниже).
— в письме приходит предложение посмотреть линк типа «имясайта/administrator/index.php?option=com_messages&view=message&message_id=40»
— этот линк открывается только! если на компе открыт бэкэнд сайта (??), иначе — «нет прав»
— если бэкэнд открыт, по линку попадаешь в папку личных сообщений в бэкэнде Joomla ! с URL /index.php?option=com_messages&view=messages.
— в сообщении написано, что такой-то писатель создал такую-то статью (вот тут — ура!).
— com_messages — это компонента «Сообщения». На «чистой» Joomla в опциях этой компоненты установил для зарегистрированных юзеров «создать := разрешено». Но «Could not instantiate mail function» продолжают выдаваться (дальше здесь не копал).

Большое спасибо capricorn и удачи всем.

Пост по ссылке и те, куда оттуда можно попасть — довольно старые, и я их видел, перед тем, как начать здесь людей отвлекать.

PHP-Version у меня 5.4.41.

Но, как я написал выше, т.к. проблема у писателей исчезла, больше сейчас ей заниматься не могу — и так и сам много времени потерял, и вас столько же занимал. ((.

 Спасибо еще раз и удачи..

In this topic, we will consider common problems with Joomla mail sending.

The most frequent error is  “Could not instantiate mail function.”, also sometimes you don’t get any errors, but messages do not come anyway. Below you will find solutions for these problems, but if you are using SMTP protocol, check this article.

1. Maybe you are configuring the contact us form on the local server. Some local servers like Denver or WAMP don’t send messages by default. After moving your site to the hosting, the problem with mailing will disappear.

2. Messages from your site look suspicious for mail services.

2a. Check the spam folder and mark emails from the site as “Not spam”, also add sender mail to the address book.

2b. If you don’t find the email in the spam folder, сonfigure sending via SMTP. You can do it in 5 minutes by following instructions. I guess it’s the most simple and trustworthy way.

2c. If you don’t want to use SMTP, create a domain email address (like sender@joomly.net). Open «System->Global configuration» in the top menu, choose tab Server, find “Mail Settings” options and type a new email address in “From email” field. It will increase your site trust level.

2d. Configure SPF or DKIM on your web server.

3.  Problems with PHP Mailer. Joomla has 3 different mailers: PHP Mail, Sendmail, and SMTP. By default is using PHP Mail, below we will tell you how to fix the problem with him.

3a. The most simple way is to change mailer to the Sendmail. Open «System->Global configuration» in the top menu and choose tab Server. Find “Mail Settings” and choose in the “Mailer” drop down “Sendmail” option. Also, you can choose SMTP, read how to use and configure this protocol here.

Joomla doesn't send messages

3b. You can try to fix PHP Mailer. Open :”root/libraries/phpmailer/phpmailer.php” or  “root/libraries/vendor/phpmailer/phpmailer/class.phpmailer.php” for the late versions of Joomla.

Code:
$params = sprintf(‘-f%s’, $this->Sender);

Change to:
$params = sprintf(‘-f%s’);

Or for the earlier versions find:

$params = sprintf(‘-oi -f %s’, $this->Sender);

Probably 707 or 1161 string number. And add below:

$params = ‘ ‘;

Now your code looks like:

if (empty($this->Sender)) {

$params = ‘-oi -f %s’;

} else {

$params = sprintf(‘-oi -f %s’, $this->Sender);

$params = ‘ ‘;

}

4. If this methods doesn’t help, maybe the problem is in your hoster. Probably you are using free plan, with blocked or opt-in mailing. Anyway you should write to the hosting support with your problem.

Понравилась статья? Поделить с друзьями:
  • Error sending e mail invalid to address
  • Error sending data 12175 faceit
  • Error sending data 12029
  • Error sending data 12007 не удается разрешить имя или адрес сервера
  • Error sending data 12002 время ожидания операции истекло