Роковой для PHP-ошибка с почтой (отсутствующие части сообщения, они почте )


У нас есть экземпляр roundcube на нашем сервере ubuntu.

Со вчерашнего дня мы больше не можем отправлять электронные письма. После нажатия кнопки отправки в roundcube, "Nachricht wird gesendet..."- Сообщение (электронная почта отправляется) загружается бесконечно.

После поиска в журналах я нашел сообщение об ошибке:

[30-Jun-2015 10:33:50 UTC] PHP Warning:  Missing argument 1 for Mail_mimePart::Mail_mimePart(), called in [***]/roundcube/vendor/pear/mail_mime/Mail/mime.php on line 1288 and defined in [***]/roundcube/vendor/pear/mail_mime-decode/Mail/mimePart.php on line 127
[30-Jun-2015 10:33:50 UTC] PHP Fatal error:  Call to undefined method Mail_mimePart::encodeHeader() in [***]/roundcube/vendor/pear/mail_mime/Mail/mime.php on line 1289

Это все еще можно отправлять электронные письма непосредственно через SMTP / Dovecot, так что все должно быть хорошо на этой стороне.

Моей первой мыслью было установить грушу пакеты, но они, кажется, правильно установлены внутри roundcube.

Stacktrace-это:

[30-Jun-2015 11:52:26 UTC] Backtrace from warning 'Missing argument 1 for Mail_mimePart::Mail_mimePart(),
 called in [...]/roundcube/vendor/pear/mail_mime/Mail/mime.php on line 1334 and 
defined' at [...]/roundcube/vendor/pear/mail_mime-decode/Mail/mimePart.php 127: [...]/roundcube/index.php 290 calling include_once() |
 [...]/roundcube/program/steps/mail/sendmail.inc 509 calling headers() |
 [...]/roundcube/vendor/pear/mail_mime/Mail/mime.php 1101 calling encodeHeaders() |
 [...]/roundcube/vendor/pear/mail_mime/Mail/mime.php 1314 calling encodeHeader() |
 [...]/roundcube/vendor/pear/mail_mime/Mail/mime.php 1334 calling Mail_mimePart()
[30-Jun-2015 11:52:26 UTC] PHP Fatal error:  Call to undefined method Mail_mimePart::encodeHeader() in [...]roundcube/vendor/pear/mail_mime/Mail/mime.php on line 1335

Примечания:

  • сервер обновлен.
  • композитор был обновлен
4 4

4 ответа:

Не знаю, где сообщить, но на данный момент Вы можете решить эту проблему, изменив строку 75 в /vendor/pear/mail_mime/Mail/mime.php с require_once 'Mail/mimePart.php'; на require_once 'mimePart.php';

У меня была та же ситуация, что и с плакатом. Я (безуспешно) возился с плагинами, а затем я больше не мог отправлять почту. roundcube / logs / error имел то же самое сообщение, когда я пытался отправить.

Форум сообщества Roundcube имеетРешение , которое сработало для меня.

Я удалил roundcube/vendor dir (на самом деле, я сделал mv vendor vendor_bak на всякий случай) и сделал composer install из roundcube dir.

Внезапно я смог послать снова.

Я только что полностью переустановил roudcube (пользовательские данные были либо в MySQL, либо в Dovecot, поэтому никакой потери данных).

Это была аналогичная проблема, как уже указывал в комментариях @Alex Chorry. Это было вызвано тем, что composer обновил пакет mail_mime при установке плагина (в моем случае это была globaladdressbook, но я видел эту проблему и на других плагинах). Кроме того, возврат php не работал, так как это привело к ошибке плагина.

Поэтому для решения этой задачи я полностью проигнорировал композитор, и никогда не устанавливал его. Я вручную установил все плагины, как указал ей на github:

  • поместите эту папку плагинов в каталог плагинов Roundcube
  • Добавьте globaladdressbook в $config ['plugins'] в вашей конфигурации Roundcube

Я удалил эти 3 строки из composer.json

    "pear/mail_mime": ">=1.8.9",
    "pear/mail_mime-decode": "~1.5.5",
    "pear/net_smtp": "dev-master",

Затем я запустил php composer.обновление phar

Затем я положил строки обратно, запустил обновление: incc:/var / lib / roundcube# php composer.обновление фар Загрузка репозиториев composer с информацией о пакете Инициализация репозитория PEAR http://pear.php.net обновление зависимостей (включая require-dev) - установка груша/pear_exception (Дев-мастер 8c18719) Клонирование 8c18719fdae000b690e3912be401c76e406dd13b

  • Установка груши/console_getopt (В1.4.1) Загрузка из кэша

  • Установка груши/Груша-ядро-минимальный (Дэв-мастер 0457483) Клонирование 0457483add2e037a5e00eb186b9dce7ea3b49da2

  • Установка pear / net_socket (dev-trunk bbe6a12) Клонирование bbe6a12bb4f7059dba161f6ddd43f369c0ec8d09

  • Установка pear / net_smtp (dev-master 3ef8150) Клонирование 3ef8150ef230314f2a70e803e13a9926e432f7af

  • Установка pear/mail_mime (dev-master 66b2a01) Клонирование 66b2a01acabe0b8d0ce606833d5cefc1a49a8887

  • Установка pear/mail_mime-decode (1.5.5.2) Загрузка: 100%

И вошел обратно в roundcube, и я мог отправить снова.

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