PHPMAILER_EXECUTE/usr/sbin/sendmail, Mailer Error: Could not execute: /usr/sbin/sendmail, notice Письмо не может быть отправлено — именно так могут заканчиваться попытки отправки E-Mail в Joomla 1.5 когда дядя хостер неправильно настроил sendmail, чмоды на доступ к нему или запретил его экзекуцию.
Если те же проблемы с отправкой электронных писем (E-Mail) через sendmail или SMTP в Joomla 1.5, то первым делом посмотрите в информации про PHP полный путь к sendmail и если в общей конфигурации он прописан верно, то в той же информации про PHP смотрите значения директивы с именем disable_functions и если оно равно = exec, system, shell_exec, passthru, popen, dl, set_time_limit, max_execution_time, ini_restore, mail, то попытки отправки электронных писем (E-Mail) именно через sendmail будут накрываться медным тазом ибо экзекуция (выполнение) sendmail происходит посредством функции popen!
Единственный выход — это пробовать отправлять почту через SMTP сервер и с общими настройками Joomla для отправки электронных писем (E-Mail) через SMTPя думаю проблем не должно возникнуть, одно единственное, что следует упомянуть, так это то, что при использовании «Отправить эту ссылку по почте» в поле Ваш E-Mail:
пользователь должен указать как раз не свой, а наш E-Mail под учётной записью которого отправляется электронная почта (E-Mail) через SMTP потому, что SMTP сервер требует совпадения имени отправителя (Ваш E-Mail, From) с именем учетной записи под которой идёт подключение к SMTPсерверу: sender address must match authenticated user SMTP.
SMTP -> FROM SERVER: 220 smtp21.mail.ru ESMTP ready SMTP -> FROM SERVER: 250-smtp21.mail.ru 250-SIZE 73400320 250-8BITMIME 250-AUTH PLAIN LOGIN 250 STARTTLS SMTP -> FROM SERVER: 250 OK SMTP -> FROM SERVER: 501 sender address must match authenticated user SMTP -> ERROR: RCPT not accepted from server: 501 sender address must match authenticated user SMTP -> FROM SERVER: 503 sender not yet given SMTP -> ERROR: RSET failed: 503 sender not yet given Mailer Error: SMTP Error: The following SMTP Error: Data not accepted.debil@ukr.net
Для того чтобы посетители сайта могли использовать возможность «Отправить эту ссылку по почте» в условиях настройки Joomla для отправки электронной почты (E-Mail) через SMTP, то мы должны сделать соответствующее объявление на своём сайте, в котором опубликовать наш E-Mail от имени которого происходит подключение к SMTP серверуи тогда функция «Отправить эту ссылку по почте» должна будет заработать!
Отправить эту ссылку по почте
E-mail адресата: debil@ukr.net
Ваше имя: Vasya
Ваш E-Mail: smtpuser@mail.ru
Тема: Ku-Ku!SMTP -> FROM SERVER: 220 smtp9.mail.ru ESMTP ready SMTP -> FROM SERVER: 250-smtp9.mail.ru 250-SIZE 73400320 250-8BITMIME 250-AUTH PLAIN LOGIN 250 STARTTLS SMTP -> FROM SERVER: 250 OK SMTP -> FROM SERVER: 250 Accepted SMTP -> FROM SERVER: 354 Enter message, ending with «.» on a line by itself SMTP -> FROM SERVER: 250 OK id=1Sz8ZZ-0002IH-Jq SMTP -> FROM SERVER: 221 smtp9.mail.ru closing connection Message sent!
В Joomla 1.5 для отправки писем используется библиотека PHPMailer v2.0.4 for PHP4, расположенная по адресу /libraries/phpmailer/phpmailer.php и если общие настройки в Joomla сделаны верно, а почта не уходит и нельза определить ошибку, то используйте приведённые ниже куски кода для тестирования PHPMailer.
Пример использования PHPMailer для отправки через sendmail:
<?php require_once('./libraries/phpmailer/phpmailer.php'); $mail = new PHPMailer(); // defaults to using php "mail()" $mail->IsSendmail(); // telling the class to use SendMail transport $mail->Sendmail = '/usr/sbin/sendmail'; // Set full path to sendmail //$body = file_get_contents('contents.html'); $body = 'body'; //$body = eregi_replace("[]",'',$body); $mail->AddReplyTo("support@remotehelp.pp.ua","First Last"); //$mail->SetFrom('support@remotehelp.pp.ua', 'First Last'); $mail->From = 'support@remotehelp.pp.ua'; $mail->AddReplyTo("support@remotehelp.pp.ua","First Last"); $address = "debil@ukr.net"; $mail->AddAddress($address, "John Doe"); $mail->Subject = "PHPMailer Test Subject via Sendmail, basic"; // optional, comment out and test $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; $mail->MsgHTML($body); //$mail->AddAttachment("images/phpmailer.gif"); // attachment //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; }
Пример использования PHPMailer для отправки через SMTP сервер:
<?php # http://phpmailer.worxware.com/index.php?pg=examples require_once('./libraries/phpmailer/phpmailer.php'); $mail = new PHPMailer(); // defaults to using php "mail()" $mail->IsSMTP(); // telling the class to use SMTP //$body = file_get_contents('contents.html'); $body = 'body'; //$body = eregi_replace("[]",'',$body); $mail->SMTPDebug = 2; // enables SMTP debug information (for testing) $mail->SMTPAuth = true; // enable SMTP authentication $mail->Host = "smtp.mail.ru"; // SMTP server $mail->Port = 25; // set the SMTP port for the GMAIL $mail->Username = "mainmail@mail.ru"; // SMTP account username $mail->Password = "mainpass"; // SMTP account password $mail->AddReplyTo("support@remotehelp.pp.ua","First Last"); //$mail->SetFrom('remotehelper@mail.ru', 'First Last'); $mail->From = 'mainmail@mail.ru'; $mail->AddReplyTo("support@remotehelp.pp.ua","First Last"); $address = "debil@ukr.net"; $mail->AddAddress($address, "John Doe"); $mail->Subject = "PHPMailer Test Subject via Sendmail, basic"; // optional, comment out and test $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; $mail->MsgHTML($body); //$mail->AddAttachment("images/phpmailer.gif"); // attachment //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; }
В некоторых случаях, настройки некоторых модулей могут некорректно работать с SMTP настройками и выдавать PHPMAILER_RECIPIENTS_FAILED, это происходит из-за несоответствия SMTP логина с именем отправителя, по идее должен помочь следующий рецепт: открываем components/com_contact/controller.php, находим строку 194 и меняем:
Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!
Письмо не может быть отправлено из-за кривого com_mailto
Кнопка E-mail (отправить ссылку другу) служит для отправки другу или недругу ссылки на какой-то материал. Письмо не может быть отправлено через эту кнопку из-за кривого /components/com_mailto/controller.php, в котором не верно рассчитывается таймаут и проверка «Verify that this is a local link«. Открываем /components/com_mailto/controller.php, находим строки:
// we return time() instead of 0 (as it previously was), ... if($timeout == 0 || time() - $timeout < MAILTO_TIMEOUT) { JError::raiseNotice( 500, JText:: _ ('EMAIL_NOT_SENT')); return $this->mailto(); } //...... // Verify that this is a local link if((!$link) || (!JURI::isInternal($link))) { //Non-local url... JError::raiseNotice( 500, JText:: _ ('EMAIL_NOT_SENT' )); return $this->mailto(); }
И меняем их до такой кондиции:
Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!
Также будет полезно увеличить значение константы MAILTO_TIMEOUT с 20 до 50! Эта бага упоминалась на:
- 1.5.23 E-mail could not be sent.
- Joomla! • View topic — E-mail could not be sent.
Why?
I can send via mail() in PHP but I can’t send via PHPMailer using IsSendmail()
asked Dec 9, 2010 at 0:23
I’ve had the same error. Solved it by commenting/deleting this:
$mail->IsSendmail();
Now it works correctly. I can send mails, and I receive them in my inbox.
![]()
daniel__
11.4k15 gold badges63 silver badges91 bronze badges
answered Nov 8, 2012 at 0:01
nitrnitrnitrnitr
4685 silver badges13 bronze badges
1
Are you sure the path /usr/sbin/sendmail is correct?
If yes, check also the permissions for sendmail are set correctly.
answered Dec 9, 2010 at 0:33
CanerCaner
56k35 gold badges172 silver badges178 bronze badges
2
I had this same issue. Spent almost an hour checking logs, checking sendmail paths and testing php mail() and sendmail from command line to no avail. And finally all I did was restarted Apache using apachectl -k graceful and the universe was healed.
answered Nov 19, 2012 at 16:22
1
For me it’s working with $mail->IsSMTP().
IsSendmail() is looking for sendmail.
![]()
Tim Cooper
155k38 gold badges325 silver badges276 bronze badges
answered Feb 4, 2014 at 15:31
I agree with the bloc above. The default mail() function is enabled on all servers (i believe). In my case I was able to send basic html using the simple mail() function but when I used PHPMailer to do that I had that error.
So I removed the part where it checks i.e. IsSendMail() and all was fine. Now more exception thrown.
For people who want to use SMTP. First create an email account on your sever and then define its parameter in your code.
Cheers,
Talha
answered Jul 15, 2013 at 4:48
![]()
TalhaTalha
1,48617 silver badges15 bronze badges
Removing IsSendmail() just created another error for me, in the end the host provider had to remove safemode on the PHP settings. It then worked
Edit By David Burdess
SafeMode should not be set on a live server! For example sites that run on Joomla or other CMS solutions it should not be enabled except in a testing environment
answered Dec 23, 2013 at 13:21
AntGAntG
1,29119 silver badges29 bronze badges
PHP with enabled safe_mode on shared servers (and probably on others too) will fail to open /usr/sbin/sendmail (PHPMailer uses popen)
answered Sep 21, 2016 at 12:26
![]()
MisiurMisiur
4,8398 gold badges36 silver badges53 bronze badges
0 Пользователей и 1 Гость просматривают эту тему.
- 16 Ответов
- 2025 Просмотров

Здравствуйте,
при создании нового материала зарегистрированным пользователем выдается Сообщение
Внимание
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.
Но, как я написал выше, т.к. проблема у писателей исчезла, больше сейчас ей заниматься не могу — и так и сам много времени потерял, и вас столько же занимал. ((.
Спасибо еще раз и удачи..
toivo wrote:Obviously your hosting provider does not want you to use Sendmail because they have blocked a PHP function that is essential when Joomla calls Sendmail.
According to the PHP reference manual, «escapeshellcmd() escapes any characters in a string that might be used to trick a shell command into executing arbitrary commands.» Blocking that function defeats the purpose.
RBL? All clean as a whistle for my IP’s as well, http://www.anti-abuse.org/multi-rbl-check-results/ and all A records and DNS is proper
Fresh 3.4.5 install and used gmail SMTP to test. PHP and send mail work fine from the account itself on my server(s) but?
EVERYTHING Joomla (and I have a few sites) end up in Gmail spam, and I can not have that for what i am doing on one site.
So? I changed to SMTP — SSL — 465 — smtp.gmail.com
1) Did not get registration email [creating new user], and no error reported in Joomla «Add new user» while I did save-n-close
But? How come I did not please? [get an error] Which puzzles me, as AcyMailing does have TEST Button for connection
Why does not Joomla please? -wink-
2) So, i threw in my FlexiContactPlus and simple form =
Failed to send message.: SMTP connect() failed.
a) Tried TLS mode = Failed to send message.: SMTP connect() failed.
b) Tried NONE = Failed to send message.: SMTP connect() failed.
Looked in my server (whm) sent summary and nothing for this NEW account ever sent, as well as nothing in Mail Que Manager either.
Thoughts please?
TY…Jim
and here is snippet of MY php.ini, in regards to the escape stuff above, and got it from https://forum.owncloud.org/viewtopic.php?f=3&t=8083
Code: Select all
; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
; http://php.net/disable-functions
disable_functions =
-
26.01.2017, 21:17
#1

Member
PHP Mail. SendMail
Здравствуйте.
ISPmanager Lite 5.86.1
почтой занимается EXIMИнформация о сервере: nginx/1.4.6 (Ubuntu) 14.04.1
Версия PHP: PHP/5.5.9-1ubuntu4.17
CMS: Joomla! 3.6.5 Stableвопрос по поводу почты
создан домен:
почтовый домен: создан ящик:
PHP код:
webmaster@сайт.ru
в настройках www указан ящик
PHP код:
webmaster@сайт.ru
через smtp отправка идет без проблем
если выбрать в админке Joomla:
1.
пишет ошибку
Код HTML:
Could not execute: /usr/sbin/sendmail
2. пишет ошибку
Код HTML:
Could not instantiate mail function.
подскажите в чем ошибка?
-
26.01.2017, 22:00
#2

права на файл какие /usr/sbin/sendmail ?
-
26.01.2017, 22:03
#3

Member

Сообщение от Mobiaaa
права на файл какие /usr/sbin/sendmail ?
скрин ниже (синяя полоска еле видно) . это какая то ссылка в exim с правами
Код HTML:
777 [lrwxrwxrwx]
sendmail.jpg
Последний раз редактировалось Aleksandr.; 26.01.2017 в 22:07.
-
27.01.2017, 16:37
#4
-
30.01.2017, 12:21
#5

ISPsystem team

Это симлинк, посмотрите на что он указывает и проверьте права на тот файл.
У меня получается так:
lrwxrwxrwx 1 root root 21 янв 15 11:53 /usr/sbin/sendmail -> /etc/alternatives/mta
[root@isp5 ~]# ls -ld /etc/alternatives/mta
lrwxrwxrwx 1 root root 23 янв 15 11:53 /etc/alternatives/mta -> /usr/sbin/sendmail.exim
[root@isp5 ~]# ls -ld /usr/sbin/sendmail.exim
lrwxrwxrwx 1 root root 4 окт 11 14:27 /usr/sbin/sendmail.exim -> exim
[root@isp5 ~]# ls -ld /usr/sbin/sendmail/exim
[root@isp5 ~]# ls -ld /usr/sbin/exim
-rwsr-xr-x 1 root root 1222504 апр 18 2016 /usr/sbin/eximТо есть все ведет на /usr/sbin/exim, его могут запускать все. Возможно у вас другие права.
-
30.01.2017, 16:37
#6

Member

Здравствуйте.
запрос
Код HTML:
# ls -ld /usr/sbin/sendmail
ответ
Код HTML:
lrwxrwxrwx 1 root root 5 Mar 14 2016 /usr/sbin/sendmail -> exim4
ничего не понял это куда?
-
30.01.2017, 18:09
#7

Member

команда # ls -ld ничего опасного не делает? перестала приниматься почта. где посмотреть логи можно?
-
30.01.2017, 18:36
#8

Senior Member

Нет, ничего опасного эта команда не делает. Логи почтовика смотреть в /var/log/exim4/mainlog
-
30.01.2017, 18:51
#9

Member

что то ничего толком не пишется какие то левые адреса
2017-01-30 11:50:12 no host name found for IP address 37.49.224.190
2017-01-30 11:50:12 no host name found for IP address 37.49.224.190
2017-01-30 11:50:16 no IP address found for host __LOCAL_IP__ (during SMTP connection from pro-tur.info [193.178.146.222])
2017-01-30 11:50:16 H=pro-tur.info [193.178.146.222] F=<travel-bounces@pro-tur.info> rejected RCPT <Stelima@vk.kh.ua>: Unknown user
2017-01-30 11:50:18 auth_login authenticator failed for (ylmf-pc) [37.49.224.190]: 535 Incorrect authentication data
2017-01-30 11:50:18 auth_login authenticator failed for (ylmf-pc) [37.49.224.190]: 535 Incorrect authentication data
2017-01-30 11:50:19 auth_login authenticator failed for wsip-174-71-231-200.lv.lv.cox.net (ylmf-pc) [174.71.231.200]: 535 Incorrect authentication data
2017-01-30 11:50:22 no host name found for IP address 37.49.224.190
2017-01-30 11:50:22 no host name found for IP address 37.49.224.190Последний раз редактировалось Aleksandr.; 30.01.2017 в 18:59.
-
31.01.2017, 06:04
#10

Member

переустановил всю почтовую дребедень и все наладилось, причем заработало даже phpmail и sendmail хотя раньше не работало из за чего и создал тему. странный глюк тк ничего не ковырял в почте с момента установки всего на свете.