The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"скрипт переноса почты"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"скрипт переноса почты"
Сообщение от slv emailИскать по авторуВ закладки(??) on 18-Фев-05, 14:02  (MSK)
Привет всем! Помогите со скриптом: Есть ящик (inbox) в который поступает почта, необходимо каждое поступившее сообщение перемещать в другой файл(outbox). Пробывал 2-мя способами:
1. Скрипт на перле с использованием библиотеки Mail:Box:Manager, переносилось так:
# каждые 5 сек.
foreach my $message ($InBox->messages)
{
   $mgr->moveMessage($OutBox, $message);
}
Но видимо библиотека карявая, т.к. с каждым перемещенным сообшением скрипт отжирает память, и так до тех пор пока она не кончается :(((
Пробывал по одному сообщению - без разницы.

2. На перле с использованием проги mail:
# каждые 5 сек.
qx "echo -e 's 1 $OutBox\n d 1\nq\n'|mail -f $Inbox";

Здесь проблема в потерях сообщений, например в inbox посылаешь 30шт., а outbox перемещается 20, остальное теряется. Видимо это связано с одновременной работой с ящиком inbox, т.к если сначала в него положить все сообщения, а потом запустить скрипт, то все нормально. Но мне надо что все работало одновременно.
ОС:FreeBSD4.10, перл 5.8
Жду ваших советов.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "скрипт переноса почты"
Сообщение от aljil Искать по авторуВ закладки(??) on 18-Фев-05, 15:09  (MSK)
берешь создаешь скрипт а-ля вот так:
------ begin --------------------------------
#!/bin/sh
# скрипт пофайлового сохранения пришедших писем
if [ -n "$1" ]
then
   BOXNAME="$1"
else
   BOXNAME='unknown'
fi
PREFIX='mymail'
SUFFIX='0'
MAILPATH='/tmp/mymail'
while [ -f ${MAILPATH}/${PREFIX}.${BOXNAME}.${SUFFIX} ]
do
    SUFFIX=`expr $SUFFIX + 1`
done
cat > ${MAILPATH}/${PREFIX}.${BOXNAME}.${SUFFIX}
------- end ------------------------------------------
даешь ему моду исполнения а-ля chmod 755 и кладешь куданить а-ля /usr/local/bin/savemail.sh.
Суешь его в алиасы:
file /etc/mail/aliases:
...
myaddr1: "| /bin/sh /usr/local/bin/savemail.sh myaddr1"
myaddr2: "| /bin/sh /usr/local/bin/savemail.sh myaddr2"
myaddr3: "| /bin/sh /usr/local/bin/savemail.sh myaddr3"
...
Гришь newaliases.
В директории $MAILPATH из скрипта выше получаешь все локально принятые на адреса myaddr1, myaddr2, myaddr3... письма пофайлово (1 письмо в 1 файле) в виде файликов с именами а-ля mymail.myaddr1.0, mymail.myaddr1.1 и т.д.
И нафиг тот геморр с перлом???
Хотя, конечно, пардон, вкусы у всех разные...
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "скрипт переноса почты"
Сообщение от slv emailИскать по авторуВ закладки(??) on 18-Фев-05, 15:53  (MSK)
>И нафиг тот геморр с перлом???
>Хотя, конечно, пардон, вкусы у всех разные...

Дело в том что примеры переноса почты это только часть моей проги. Она довольно сложна, что делать ее полностью на шеле, по крайней мере для меня сложно. И к тому же мне надо только из одного ящика перемещать только в определенный файл. Дело в том что мой inbox - это ящик куда сваливаются все письма проходящие через MTA. А скрипт будет раскладывать эти письма в заданный файл, пока не наступит например смена числа месяца.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "скрипт переноса почты"
Сообщение от slv emailИскать по авторуВ закладки(??) on 18-Фев-05, 16:01  (MSK)
Да, еще, мне нужно не копирование, а именно перемещение!
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "скрипт переноса почты"
Сообщение от slv emailИскать по авторуВ закладки(??) on 21-Фев-05, 09:58  (MSK)
Может кто еще что-нибудь посоветует?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "скрипт переноса почты"
Сообщение от nordic emailИскать по авторуВ закладки(ok) on 21-Фев-05, 12:14  (MSK)
>Может кто еще что-нибудь посоветует?


А в сторону procmail не пробовал смотреть?
Или я чего то не понял и он не подходит?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "скрипт переноса почты"
Сообщение от slv emailИскать по авторуВ закладки(??) on 21-Фев-05, 12:28  (MSK)
>А в сторону procmail не пробовал смотреть?
>Или я чего то не понял и он не подходит?

Нет, его не рассматривал. А как его в данном случае можно применить.
Мне вообще бы кто-нить объяснил почему не катит:
qx "echo -e 's 1 $OutBox\n d 1\nq\n'|mail -f $Inbox";

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "скрипт переноса почты"
Сообщение от nordic emailИскать по авторуВ закладки(ok) on 21-Фев-05, 13:28  (MSK)
>>А в сторону procmail не пробовал смотреть?
>>Или я чего то не понял и он не подходит?
>
>Нет, его не рассматривал. А как его в данном случае можно применить.
>
>Мне вообще бы кто-нить объяснил почему не катит:
>qx "echo -e 's 1 $OutBox\n d 1\nq\n'|mail -f $Inbox";


#cat .procmailrc
LOGFILE=/path2log/log
INCLUDERC=/path2cfg/rc.INSCRIPT

#cat rc.INSCRIPT
:0 c
*
| /path/myscript.pl


И не забываем про sendmail

cat sendmail.mc | grep procmail
FEATURE(local_procmail)dnl
MAILER(procmail)dnl

Вообще линки по procmail  вот (к примеру):
man: http://www.sendmail.by.ru/tools/procmail/procmail.htm
examples: http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/mail-procmail.html

;)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "скрипт переноса почты"
Сообщение от Nikolaev D. Искать по авторуВ закладки on 21-Фев-05, 21:52  (MSK)
>Да, еще, мне нужно не копирование, а именно перемещение!

а алиасом на другого пользователя нельзя сделать ?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "скрипт переноса почты"
Сообщение от slv emailИскать по авторуВ закладки(??) on 22-Фев-05, 07:04  (MSK)
>>Да, еще, мне нужно не копирование, а именно перемещение!
>
>а алиасом на другого пользователя нельзя сделать ?

Нельзя т.к. OutBox это не почтовый ящик, это файл, который совсем не в /var/mail находится , к тому же его имя постояннно меняется. Да и Inbox не резиновый, скопированные из него сообщения надо удалять, поэтому и прошу перенос почты.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру