Procmail Проблемы - PullRequest
       12

Procmail Проблемы

0 голосов
/ 23 ноября 2008

Я пытался решить эту проблему неделями ...

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

Hello
Hi
Hey

Я использую три файла, чтобы сделать это для меня. Первый, файл .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:.*sumone@sumaddy.com
* ^Subject:.*hello
$HOME/Mail/Hello

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

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

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

Не то чтобы я этого не пробовал ...


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

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

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


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

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

Я исправил все остальное, и я знаю, что мой / usr / bin / procmail существует, потому что я использовал whereis, чтобы увидеть его путь.

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

Как мне заставить журнал работать? General.rc не так?

Ответы [ 5 ]

3 голосов
/ 23 ноября 2008

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

2 голосов
/ 24 ноября 2008
  1. В файле ~ .forward отсутствует символ '/' до usr. Кроме того, вы можете держать его коротким, как это;

    "| ** / ** usr / bin / procmail"

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

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

  1. Выход из любых почтовых клиентов
  2. Уберите ваш текущий почтовый ящик (mv / var / spool / mail / username /tmp/mail.username)
  3. formail +1 -ds procmail
1 голос
/ 09 сентября 2011

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

1 голос
/ 02 декабря 2008

Я думаю, что вашей главной задачей перед любой другой отладкой является проверка того, что 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. Вы должны отредактировать свой вопрос, чтобы показать текущее содержимое этих двух файлов.

...