Аннотация |
Этот документ описывает, как настроить ваш сервер новостей и программу mail2news. |
The copyright of this document is retained by the author. Permission is granted to distribute the document by electronic means and on CDs provided that it is kept entirely in its original format. Permission is also granted to print a copy of this document for personal use.
The republishing of this document in part or in whole without the permission of the copyright holder by any means other than as noted above is prohibited.
Авторские права на русский перевод этого текста принадлежат ╘ 2000 ASPLinux Все права зарезервированы.
Этот документ является частью проекта Linux HOWTO.
Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но так или иначе автор текста и автор перевода желали бы знать о таких дистрибутивах.
Все переводы и производные работы, выполненные по документам Linux HOWTO должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO с которым можно связаться по адресу приведенному ниже.
Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: <linux-howto@metalab.unc.edu>, или к координатору русского перевода Linux HOWTO компании ASPLinux по адресу <linux-howto@asplinux.ru>
Почему иногда бывает нужно выкладывать новости, на которые вы подписались в местную группу новостей?
Потому что, другие тоже могут на них подписаться, и, в результате получится, что все будут качать одно и то же. А при подписке вашего сайта на новости (или что-то другое), вы можете предоставить доступ к этим новостям всем пользователям сайта или при помощи системы безопасности, наоборот, ограничить доступ к ним некоторым пользователям.
При прочтении всей почты, при помощи программы для чтения новостей вы можете поставить приоритеты и игнорирование. При этом вы сохраняете свой ящик более доступным для важных и срочных сообщений.
Это mini-HOWTO описывает создание скрипта для 'mail2news'.
Вы можете скачать архив mail2news вместе со скриптом и этим HOWTO с
http://www.netizen.com.au/~bekj/code/mail2news/ |
Гораздо проще понять, как это работает, можно проследив путь сообщения со списка новостей в локальную группу новостей и другой вариант, при котором сообщение сначала попадает в локальную группу новостей, а затем рассылается пользователям.
Когда сообщение из списка рассылки поступает на вашу машину, procmail показывает, к какой группе новостей оно принадлежит, и передает его в управление mail2news.
Скрипт mail2news обрабатывает это сообщение, прилагает к нему заголовок и затем, при помощи rnews или inews, отсылает его в местную группу новостей.
Местная группа новостей является модерируемой (сообщения кем-то фильтруются), что позволяет воспользоваться преимуществами innd. Любое сообщение, посланное в местную группу новостей, не сразу попадают в группу. Они посылаются сначала модератору группы.
Если мы заменим модератора группы новостей на список рассылки, то все местные сообщения в группу новостей будут автоматически выкладываться в группу новостей демоном innd.
Скопируйте скрипт mail2news в удобное место. Лучше в /usr/local/bin.
Теперь вам нужно его отредактировать следующим способом:
удостоверьтесь, что в начале скрипта у вас идет ссылка на местную программу Perl. Вы можеет выяснить где находится Perl, написав в командной строке 'whereis perl' или 'which perl'. Если вы не смогли ее найти, то посмотрите в /usr/bin/perl это самое удобное место для размещения:
#!/usr/bin/perl # укажите реальное расположение perl |
Отредактируйте нижеследующую часть в соответствии с местонахождением почтовой программы (я использую rnews, inews тоже будет работать) и хоста с новостями:
# $inews = "/usr/bin/inews"; # $iopts = "-h -o \"mail2news gateway\""; $inews = "/usr/bin/rnews"; $iopts = ""; $postinghost = "your.news.server"; # points at your news server |
Удостоверьтесь, что скрипт запускаем:
chmod 755 /usr/local/bin/mail2news |
Файл настройки procmail находится в /.procmailrc. Если у вас нет файла procmailrc, то создайте его.
Сделайте запись для каждого списка рассылки которые поступают на ваш локальный сервер новостей. Обычно это срабатывает, кроме случаев, когда все рассылается с использованием Bcc (невидимые копии).
Например, если ваш список рассылки 'jokes@netizen.com.au' и вы хотите чтобы группа новостей называлась 'lists.jokes', то ваша запись будет выглядеть следующим образом:
:0 * TOjokes@netizen.com.au |/usr/local/bin/mail2news lists.jokes |
Заметьте, что между 'TO' и адресом во второй строке нет пробела.
Вам понадобится поместить пустую строку между строками для каждой группы новостей. Сделайте столько записей, сколько вам понадобится, используя 3 строки для каждой группы, но изменяя адрес и группы название новостей.
Создайте группы новостей на вашем сервере используя ctlinnd. Помните, что это местные группы новостей, поэтому дайте им определенные названия, для того, чтобы их в последствии можно было фильтровать.
Так же innd должен быть "уведомлен" о том, что группа модерируется (при помощи ctlinnd). Помните, что innd очень придирчиво относится к правам владения файлом и доступу к нему, поэтому вам необходимо обращаться с innd как пользователю новостей. Указание на то что группа модерируется, делается указанием ключа m в команде newgroup.
ctlinnd newgroup lists.jokes m |
Ключ m указывает innd, что группа модерируется.
Отредактируйте файл newsfeeds так, чтобы имена групп не повторялись.
Например, если ваш список рассылки называется local.site.group, то вам лучше добавить во второе поле входящего (и возможно исходящего) потока строку !local*.
Теперь для того чтобы сообщения пользователей посылаются автоматически демоном innd, отредактируйте /etc/news/moderators путем включения строки в которой указан адрес списка рассылки модератора.
lists.jokes:jokes@netizen.com.au |
Если у вас это не работает, то вам придется проследить весь путь сообщений, чтобы узнать, где находится ошибка. Полезными вещами окажутся журналы писем и новостей.
Существует одна проблема с письмами, посланными таким способом - у них будет заголовок группы новостей. Эта проблема в принципе не доставляет много неприятностей. Было бы неплохо, если бы существовала программа, которая их перехватывает и исправляет заголовки до того, как сообщения отосланы.