2008-11-23 2 views
0

Я пытался решить эту проблему в течение нескольких недель ...Procmail Авария

Моя цель заключается в поиске моего почтового ящика для следующих сообщений:

Hello 
Hi 
Hey 

Im используя три файла, чтобы сделать это для меня , Во-первых, файл .forward в моем $ HOME

"|IFS=' '&&exec usr/bin/procmail||exit 75 #username" 

И эти два находятся в моем ~/.procmail каталог

.procmailrc 

VERBOSE=off 
MAILDIR=$HOME/Mail 
PMDIR=$HOME/.procmail 
DEFAULT=/var/spool/mail/username 
LOGFILE=$PMDIR/log 
INCLUDERC=$PMDIR/general.rc 
#end of .procmailrc 

И, наконец, файл правила: general.rc

:0 
* ^From:.*[email protected] 
* ^Subject:.*hello 
$HOME/Mail/Hello 

Что должно произойти, так это то, что все три этих файла работают вместе, чтобы копировать и перемещать почту, содержащую шаблон приветствия в своем предмете. И чтобы быть в безопасности, он также будет искать адреса отдельных лиц. Затем, когда эти шаблоны будут сопоставлены, он будет придерживаться найденного и создать указанный путь; если он еще не существует.

Но это не так. После того, как я закончил редактирование этих файлов в emacs, vi, .. и затем сохранил его, будет ли он работать автоматически? Или мне нужно его скомпилировать?

Если я, то .procmailrc может потребовать (если не все) в 'Shell =/bin/ш'

Не то, чтобы я не пытался, что ...


Нет , мой плохо разработанный дизайн - обрабатывать входящую почту.

Я протестировал ее, отправив электронные письма себе.

Что я думаю, это то, что мой файл General.RC не закодирован. Потому что, сразу после того, как я отправил себе электронное письмо, он ДОЛЖЕН скопировать и перенести его в указанный каталог.


Не удивительно, что я совершил эти ошибки, я отредактировал все три этих файла в миллисекундах.

ничего не отображается в моем файле LOG ...

Я исправил все остальное, и я знаю, что мой/USR/бен/Procmail существует потому, что я использовал WhereIs, чтобы увидеть свой путь.

Но мое тестирование все еще терпит неудачу. Я продолжаю отправлять свои электронные письма и проверять свою почтовую папку, чтобы узнать, увеличились ли байты в моем файле «Hello».

Как я могу заставить журнал работать? Является ли general.rc неправильным?

+0

Внутри `~/.forward`, добавьте`/`в начале` usr/bin/procmail`: `/ usr ...`. – 2015-05-04 06:34:04

ответ

3

Procmail обрабатывает почту, когда она приходит, а не когда она просто сидит в вашем почтовом ящике. Если вы хотите обработать почту, которая уже находится в вашем почтовом ящике, вам нужно передать ее через procmail снова, либо путем «отскакивания» ее от себя, либо путем ее прокрутки через procmail.В клиенте командной строки электронной почты, как собачонка, вы могли бы сделать бывший с командой «B», а второй, набрав |procmail

2

Если вы хотите обработать электронную почту у вас уже есть, вам нужно:

  1. Закройте все почтовые клиенты
  2. Отойдите текущий Входящие (мв/вар/катушка/почты/имя пользователя /tmp/mail.username)
  3. FORMAIL +1 -ds Procmail < /tmp/mail.username
+1

Это приведет к повторному отправке сообщений, которые вы уже получили. Возможно, это совсем не то, что вы хотите. – tripleee 2011-09-09 07:48:10

2
  1. У вашего файла ~ .forward отсутствует// перед usr. Кроме того, вы можете держать его коротким, как это;

    "| **/** USR/бен/Procmail"

  2. положить .procmailrc в вашем домашнем каталоге
  3. После установки вашего MAILDIR, писать только "Hello" в качестве имени почтового ящика в general.rc , Также используйте «: 0:» в начале рецепта, чтобы включить блокировку, все поставки должны заблокировать файл почтового ящика!
  4. Убедитесь, что у вас есть procmail, установленный в/usr/bin/procmail на сервере.
  5. Убедитесь, что файл «Hello» существует в вашем MAILDIR.
  6. Проверьте файл журнала
+0

Фактически файл `.forward` в порядке, кроме отсутствующего косая черта перед` usr`. Вот как вы должны были писать файлы `.forward` для Sendmail, назад. Должна работать, даже если ваш MTA не является Sendmail. – tripleee 2011-09-09 07:49:39

1

Я думаю, ваша главная задача, прежде чем какой-либо другой отладки, чтобы убедиться, что Procmail бежится на входящие сообщения электронной почты.

Мое предложение сделать файл .procmailrc выглядеть следующим образом (ничего)

VERBOSE=on 
LOGFILE=/tmp/procmail.log 

:0 fhbw 
| sed "s/^Subject:/& --procmail working--/" 

Затем отправьте себе сообщение электронной почты.

Вы должны получить файл журнала в /tmp/procmail.log, и ваше сообщение электронной почты должно прибыть в ваш почтовый ящик с измененной темой темы, чтобы включить «--procmail working--».

Если это не сработает, то procmail не вызывается, и вы должны изменить свой вопрос, чтобы показать текущее содержимое вашего файла .forward.

Если это работает, проблема связана с содержимым вашего .procmailrc или вашего файла general.rc. Вы должны отредактировать свой вопрос, чтобы показать текущее содержимое этих двух файлов.

1

Если вы хотите найти сообщения на своем диске с одной из этих Тематических строк, я бы порекомендовал fgrep на вашем почтовом ящике.