Mibew Messenger Community
General => Support => Русский (ru) => Topic started by: falcon on September 06, 2013, 02:40:41 PM
-
Уведомляю, что на некоторых серверах запрещена отправка почты от Nobody. Эдакая защита от спама.
Стоит сделать настройку.
Мои изменения в /lib/notify.php
@mail($toaddr, $real_subject, wordwrap(myiconv($webim_encoding, $mail_encoding, $body), 70), $headers, '-f', $webim_mailbox);
ini_set('sendmail_from', 'mymail@site.ru');
mail($toaddr, $real_subject, wordwrap(myiconv($webim_encoding, $mail_encoding, $body), 70), $headers, '-f' . $webim_mailbox);
-
Вообще, все необходимые по соответствующему RFC заголовки, включая поле "From:" Mibew при отправке почты задаёт.
И может быть я не прав, но указанная переменная PHP используется только в Windows и относится, вообще говоря, не к настройке конечного приложения, а к настройке веб-сервера. По крайней мере, на PHP.net пишут именно так:
http://php.net/manual/ru/mail.configuration.php
А выставить эту переменную в Windows, опять-таки исходя из официальной документации, можно где угодно. Хоть в реестре Windows, хоть на уровне конфигурации веб-сервера, хоть на уровне специфичных настроек для конкретной директории (через .htaccess для Apache или web.config для IIS).
Соответственно, мы в рамках проекта эту тему ещё обсудим, но у лично меня есть сомнения в целесообразности втаскивания этого изменения в основную кодовую базу.
-
У нас сервер не на винде, как я помню.
Без этой фишки почта остается на сервере (доступа к логам маил сервера нету), но админ говорил, что не отправляются из-за nobody.
Долго искал вариант и этот подошел.
P.S. Извиняюсь, я слоупок. Давно сюда не заходил
Дабы не плодить темы: 1.6.6 совместима с предыдущими версиями?
Глянул демку 2.0. Красивая зараза. :)
Тема новая интересная.
Может на днях полистаю 1.6.6. Жаль у меня слишком много изменений в движке.. Быдлокода всякого.. И хочется.. И колется.. :(
Еще предложения в ToDo будущий (Да, я понимаю, это не скоро еще, но как мысли будут, буду предложения писать):
1. напоминание, если диалог не открыт в течение 5-10 минут. Когда сидишь/лежишь (короче, находишься) с девушкой, быстро забываешь, что кто-то пишет :))
2. возможность бесконечного напоминания (только без утечки в памяти), пока диалог не будет открыт.
3. возможность отключения флуда в чат ссылками (иногда просто бешенные юзеры попадаются)
4. возможность отключения проверки в диалоге суппорт или нет. Я, например, часто с планшетки сижу. А там браузер перестает обновляться, когда блокируешь планшет. В итоге пользователь видит кучу сообщений. (Пришлось порыться в коде и язык.файле). Правда теперь пустые сообщения идут иногда. Надо будет пофиксить у себя..
По топику:
Поставил двигло 1.6.6, скопировал базу. Ну не отправляются письма без ini_set. ;/
Добавил в код, протестировал. Итог: сразу пришло.
-
Лучше делать отдельные темы под отдельные вопросы. Так их потом проще будет искать и изучать другим посетителям форума.
По предложенному списку TODO: Mibew 1.6.x по новым возможностям заморожен, а в 2.x всё это, по идее, можно будет реализовать с помощью плагинов.
По совместимости. Не уверен, что понял, о чём речь. Кнопку, скорее всего, потребуется перегенерировать, кодовая база заменяется при установке полностью, по базе данных - да, совместимость есть. В зависимости от старой версии, с которой осуществляется переход, может потребоваться проведение обновления структуры БД, но это Mibew делать умеет, на низком уровне никаких операций производить не потребуется.
И, собственно, по сабжу. Ещё раз: отправка почты в Mibew осуществляется стандартными средствами. Если почта не отправляется из-за отсутствия каких-то настроек веб-сервера, то эти настройки надо делать не на уровне приложения, а на уровне веб-сервера. Как - см. документацию на PHP.net (http://www.php.net/manual/ru/configuration.changes.modes.php). Тащить эти настройки в приложение - идеологически неправильно.
-
http://forums.cpanel.net/f5/scoop-nobody-stuff-9076.html#post39853
Вот объяснение ситуации. Вполне понятное.
-
Неравноценный информационный обмен, коллега. Я Вам ссылки на официальную документацию PHP, а Вы мне - на обсуждение десятилетней давности на форуме достаточно одиозного проприетарного программного продукта. ;D
Но даже в том обсуждении звучат примерно те же мысли, что я здесь уже озвучил:
Which means that by default mail() will send mail as username@server.hostname.com. It will not send email from their domain name unless you give mail() more params.
Так вот в Mibew для mail() (http://www.php.net/manual/ru/function.mail.php) дополнительным параметром указываются все необходимые по RFC для отправки почты заголовки (From:, Reply-to:). Дальше - задачи не приложения, а веб-сервера и почтового сервера.
Логично, что для отправки почты веб-сервер и почтовый сервер должны быть сконфигурированы соответствующим образом. Но втаскивать эту конфигурацию в приложение - неправильно.
Кстати, уже в следующем посте по Вашей ссылке написано:
You can also set this in a vhost directive in httpd.conf
Иными словами, требующиеся Вам параметры можно (и нужно) задать на уровне конфигурации веб-сервера. В .htaccess оно точно так же сработает (см. документацию PHP, параметр sendmail_from может меняться где угодно.
-
Неравноценный информационный обмен, коллега. Я Вам ссылки на официальную документацию PHP, а Вы мне - на обсуждение десятилетней давности на форуме достаточно одиозного проприетарного программного продукта. ;D
Просто одна из первых ссылок с подобной проблемой. :P
Так вот в Mibew для mail() (http://www.php.net/manual/ru/function.mail.php) дополнительным параметром указываются все необходимые по RFC для отправки почты заголовки (From:, Reply-to:). Дальше - задачи не приложения, а веб-сервера и почтового сервера.
Логично, что для отправки почты веб-сервер и почтовый сервер должны быть сконфигурированы соответствующим образом. Но втаскивать эту конфигурацию в приложение - неправильно.
Хорошо. Еще раз о проблеме. У хостера может быть отключена отсылка писем в PHP и CGI от nobody в CPanel-и.
http://docs.cpanel.net/twiki/bin/view/AllDocumentation/WHMDocs/PreventEmailAbuse#Step 2: Prevent the nobody syste (http://docs.cpanel.net/twiki/bin/view/AllDocumentation/WHMDocs/PreventEmailAbuse#Step 2: Prevent the nobody syste)
Вследствие чего, письма от mibew чата даже с правильными заголовками RFC не будут отсылаться, как я вижу из текущей ситуации.
Поэтому, я и предлагаю встроить опцию, чтобы кому-то не пришлось прыгать с бубном :)
Кстати, уже в следующем посте по Вашей ссылке написано:
You can also set this in a vhost directive in httpd.conf
Иными словами, требующиеся Вам параметры можно (и нужно) задать на уровне конфигурации веб-сервера. В .htaccess оно точно так же сработает (см. документацию PHP, параметр sendmail_from может меняться где угодно.
Хорошо, это понятно и не суть важно, где менять. Но доступа к конфигам (php.ini) у рядового пользователя хостинга скорей всего нету и не будет. Либо изменения php.ini ограниченные ;)
-
Хорошо. Еще раз о проблеме. У хостера может быть отключена отсылка писем в PHP и CGI от nobody в CPanel-и.
http://docs.cpanel.net/twiki/bin/view/AllDocumentation/WHMDocs/PreventEmailAbuse#Step 2: Prevent the nobody syste (http://docs.cpanel.net/twiki/bin/view/AllDocumentation/WHMDocs/PreventEmailAbuse#Step 2: Prevent the nobody syste)
Вследствие чего, письма от mibew чата даже с правильными заголовками RFC не будут отсылаться, как я вижу из текущей ситуации.
Поэтому, я и предлагаю встроить опцию, чтобы кому-то не пришлось прыгать с бубном :)
Кстати, уже в следующем посте по Вашей ссылке написано:
You can also set this in a vhost directive in httpd.conf
Иными словами, требующиеся Вам параметры можно (и нужно) задать на уровне конфигурации веб-сервера. В .htaccess оно точно так же сработает (см. документацию PHP, параметр sendmail_from может меняться где угодно.
Хорошо, это понятно и не суть важно, где менять. Но доступа к конфигам (php.ini) у рядового пользователя хостинга скорей всего нету и не будет. Либо изменения php.ini ограниченные ;)
Я говорил не про php.ini, а про .htaccess (или про web.config для IIS). Права на его изменение, а равно и возможность прописывания этой опции там у пользователя есть.
С другой стороны, изучил сейчас несколько взрослых проектов типа Drupal и Wordpress. Да, там они решают проблемы некорректной настройки сервера на уровне приложения. Идеологически мне это кажется неправильным, но мы такую возможность рассмотрим.
-
Гут. :) Это все, чего я хотел добиться. Всплывут какие-нибудь идеи/фантазии/пожелания - дам знать :)
-
Ладно, будем считать, поддался уговорам. ::)
В 1.6.7 реализована поддержка подобных странных системных настроек.
-
Ага. Видел коммиты. Я проверю сегодня, отпишу.