Электронные письма из определенной пользовательской папки, которые будут заархивированы и отправлены на внешний почтовый ящик
Я пытаюсь переслать все электронные письма, которые хранятся (перемещаются) в определенную папку пользователя, на заранее определенный адрес электронной почты.
например
Любое новое электронное письмо, хранящееся в /home/mycooluser/mail/spam-mail, будет пересылаться spamreport@mycooldomain.com.
Я пытаюсь добиться этого с помощью некоторых настроек procmail, проблема в том, что сообщения должны быть заархивированы и отправлены как вложения.
Кто-нибудь может пролить свет на то, как я могу этого достичь?
1 ответ
Контекст, в котором запускается Procmail, - это когда вы находитесь в процессе получения нового сообщения. Внутри вашего .procmailrc
Обычно вы еще не знаете, где будет храниться доставляемое вами сообщение, потому что решаете, что теперь это работа Procmail. Как только оно приняло решение, оно может быть выполнено для выполнения дополнительных действий; но ваше требование заархивировать папку кажется неуместным для такой логики. Я полагаю, вы не хотите архивировать и отправлять всю папку каждый раз, когда в нее добавляется одно новое сообщение...?
Более естественной реализацией будет периодическая работа cron. Решите, как часто он должен запускаться (ежечасно? Ночью?) И должен ли он удалять сообщения, которые он успешно архивирует и отправляет. Если с момента предыдущего запуска в папке нет сообщений, очевидно, ничего не архивировать и не отправлять.
Если вы действительно хотите использовать Procmail для этого, логика выглядит примерно так:
:0c
!otheraddress@example.net
:0:
Foldername
Если Foldername
это папка maildir, потерять двоеточие после :0
и измените имя папки на правильный синтаксис (папки maildir не требуют блокировки).
!
просто вперед без молнии. Нетрудно найти способ архивирования, но я не буду развивать это дальше, поскольку думаю, что это не то, что вам нужно или нужно, как объяснено выше.