Автор Тема: Как организовать раздачу пользователям почту с внешнего почтового ящика?  (Прочитано 3922 раз)

Оффлайн supersonic

  • Участник
  • *
  • Сообщений: 191
Добрый день.
Ситуация следующая.
У нашей школы есть почтовый ящик на mail.ru. Специально обученный человек сидит, принимает клиентом почту, которая приходит на школу и потом все сообщения складывает в, спецом расшаренную на сервере, папку. Решение, мне кажется, не очень красивое... Поэтому вырисовывается такая задача.
С учетом того, что на каждого пользователя сети заведен локальный почтовый ящик, необходимо, чтобы почта с внешнего почтового ящика автоматически забиралась и раздавалась пользователям.
Подскажите, пожалуйста, как можно сие решить?

Оффлайн varalt

  • Участник
  • *
  • Сообщений: 996
Добрый день.
Ситуация следующая.
У нашей школы есть почтовый ящик на mail.ru. Специально обученный человек сидит, принимает клиентом почту, которая приходит на школу и потом все сообщения складывает в, спецом расшаренную на сервере, папку. Решение, мне кажется, не очень красивое... Поэтому вырисовывается такая задача.
С учетом того, что на каждого пользователя сети заведен локальный почтовый ящик, необходимо, чтобы почта с внешнего почтового ящика автоматически забиралась и раздавалась пользователям.
Подскажите, пожалуйста, как можно сие решить?
Я не совсем понял, того чего Вы хотите.
Вам нужно, чтобы получаемая почта со внешнего ящика продублировалась на всех локальных почтовых ящиках или как?

Знайка

  • Гость
Реализовать то такое возможно, но с начало нужно подумать, на основании чего, ваш сортировщик будет решать, в какой локальный почтовый ящик класть конкретно взятое письмо.

Оффлайн NecroJoke

  • Участник
  • *
  • Сообщений: 457
помоему проще купить доменное имя с почтой, и усе...

Оффлайн supersonic

  • Участник
  • *
  • Сообщений: 191
Я не совсем понял, того чего Вы хотите.
Вам нужно, чтобы получаемая почта со внешнего ящика продублировалась на всех локальных почтовых ящиках или как?
Да. Именно так.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 160
    • Домашняя страница
С учетом того, что на каждого пользователя сети заведен локальный почтовый ящик, необходимо, чтобы почта с внешнего почтового ящика автоматически забиралась и раздавалась пользователям.
Подскажите, пожалуйста, как можно сие решить?
Ищите в Google по ключевым словам fetchmail+procmail+разложить
Андрей Черепанов (cas@)

Оффлайн supersonic

  • Участник
  • *
  • Сообщений: 191
Наконец дошли руки до решения этой задачи. Информации по связке fetchmail+procmail много, но кое-какие вещи всё равно не понятны.
Специально завёл пользователя mailer, который должен с помощью fetchmail выкачивать почту с Инета. Всё нормально, вроде выкачивается. Вот конфиг .fetchmailrc:
set daemon 1200
set logfile /home/mailer/.fetchmail.log
defaults proto pop3 timeout 120 tracepolls mda "/usr/bin/procmail -d %T" fetchlimit 20 limit 31457280
poll pop.server.com user "user@serverl.com" is "mailer" password "password" ssl
Проблема начинается, когда procmail начинает распределять почту по ящикам. Вот конфиг:
MAILDIR=$HOME/Mail
DEFAULT=$HOME/default
LOGFILE=$HOME/.procmaillog
LOCKFILE=$HOME/.lockmail
LOGABSTRACT=no
VERBOSE=off
FORMAIL=/usr/bin/formail
NL=""

:0 Whc: .msgid.lock
| $FORMAIL -D 16384 .msgid.cache

:0
* .*
/home/user/mail

В логах fetchmail пишется, что всё нормально: столько-то сообщений для пользователя user. Однако, куда девается эта почта -- непонятно.
Разъясните, пожалуйста, как всё это работает. Непонятен еще один нюанс. Если fetchmail+procmail запускается от имени пользователя mailer, то каким образом почтовые сообщения будут записываться в папки пользователей? А сам fetchmail запускаться от root не рекомендует.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Я не совсем понял, того чего Вы хотите.
Вам нужно, чтобы получаемая почта со внешнего ящика продублировалась на всех локальных почтовых ящиках или как?
Да. Именно так.
Так как ? Вопрос же 2 варианта содержит. :-)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Реализовать то такое возможно, но с начало нужно подумать, на основании чего, ваш сортировщик будет решать, в какой локальный почтовый ящик класть конкретно взятое письмо.
А вот тут можно было сказать о существовании "+". То есть, для E-Mail вида firma@example.com допустима запись firma+vasia@example.com. И по этому "+vasia" может ориентироваться локальный сортировщик.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Непонятен еще один нюанс. Если fetchmail+procmail запускается от имени пользователя mailer, то каким образом почтовые сообщения будут записываться в папки пользователей? А сам fetchmail запускаться от root не рекомендует.
только если ящики пользователей будут r/w для той же группы, которой принадлежит процесс fetchmail. Ну или от рута делать всё же. Есть ещё вариант по smtp сливать на локальный сервер, а не через procmail.

Оффлайн supersonic

  • Участник
  • *
  • Сообщений: 191
Я не совсем понял, того чего Вы хотите.
Вам нужно, чтобы получаемая почта со внешнего ящика продублировалась на всех локальных почтовых ящиках или как?
Да. Именно так.
Так как ? Вопрос же 2 варианта содержит. :-)
Да, необходимо, чтобы почта с внешнего почтового ящика принималась на локальный сервер, а потом рассылалась нужным пользователям...

Оффлайн supersonic

  • Участник
  • *
  • Сообщений: 191
Реализовать то такое возможно, но с начало нужно подумать, на основании чего, ваш сортировщик будет решать, в какой локальный почтовый ящик класть конкретно взятое письмо.
А вот тут можно было сказать о существовании "+". То есть, для E-Mail вида firma@example.com допустима запись firma+vasia@example.com. И по этому "+vasia" может ориентироваться локальный сортировщик.
Не, сортировка не нужна. Просто входящую почту продублировать на несколько локальных пользователей. Ну, во всяком случае, пока... :)

Оффлайн supersonic

  • Участник
  • *
  • Сообщений: 191
Непонятен еще один нюанс. Если fetchmail+procmail запускается от имени пользователя mailer, то каким образом почтовые сообщения будут записываться в папки пользователей? А сам fetchmail запускаться от root не рекомендует.
только если ящики пользователей будут r/w для той же группы, которой принадлежит процесс fetchmail. Ну или от рута делать всё же. Есть ещё вариант по smtp сливать на локальный сервер, а не через procmail.
Хорошо. Тогда первое. Что, вообще, такое "Почтовый ящик" пользователя на сервере: папка "mail" в домашнем каталоге пользователя или какой-то файл? Для чего (для какой папки/файла) конкретно ставить r/w? Не совсем понятно.
Второе. Что значит сливать по smtp? И сможет ли smtp как procmail "раздать" копии писем локальным пользователям?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Хорошо. Тогда первое. Что, вообще...
Это - правильное начало. :-)

Вариантов более одного. Два приведённых варианта вполне допустимы. А есть ещё почтовые сервера с внутренней структурой ящиков, и лазить вовнутрь иерархии мимо их утилит не следует (пример - Cyrus-IMAP). Есть такие, которые данные, вообще, в СУБД хранят (пример - DBMail). Так что, начинать надо с pop/imap-сервера, а уж исходя из этого думать, как настраивать fetchmail.

Оффлайн supersonic

  • Участник
  • *
  • Сообщений: 191
Вроде решил задачку.
Вот .fetchmailrc
#set daemon 1200
set logfile /home/user1/fetchmail.log
defaults proto pop3 timeout 120 fetchall mda "/usr/sbin/sendmail -i -f %F user2,user3"
poll pop.server.com user "mailuser@server.com" password "qwerty" is "user1" here keep ssl
Сначала попробовал с помощью procmail. Вот для него .fetchmailrc
#set daemon 1200
set logfile /home/user1/fetchmail.log
defaults proto pop3 timeout 120 fetchall mda "/usr/bin/procmail -t -f %F"
poll pop.server.com user "mailuser@server.com" password "qwerty" is "user1" here keep ssl
И .procmailrc
MAILDIR=/var/mail
DEFAULT=$HOME/default
LOGFILE=$HOME/.procmaillog
LOCKFILE=$HOME/.lockmail
LOGABSTRACT=no
VERBOSE=off
NL=""
:0
* .*
$MAILDIR/user2

:0
* .*
$MAILDIR/user3
Но в этом случае всю почту получает user2. Здесь логика понятна. Возможно, есть способ создания копий, но я пока не нашел.
В результате, остановился на sendmail, который просто рассовывает почту по разным ящикам. Единственное, ради этого fetchmail приходится запускать под root, поскольку смена прав на файлы в /var/mail/ ничего не дала. Буду совершенно не против, если народ подскажет более красивое решение.
С уважением... :-)