Назад | Перейти на главную страницу

procmail доставить cyrus imap

Я загружаю почту с помощью fetchmail и доставляю ее в локальную учетную запись unix, файл пользователей .procmailrc хранит почту в формате Maildir, а также доставляет ее в cyrus imap

PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/Maildir/
DEFAULT=$HOME/Maildir/
LOGFILE=$MAILDIR/procmail.log

# Grab out the Return-Path
:0
* ^Return-Path:\/.*
{
  RETURNPATH = "$MATCH"
}

DELIVER="/usr/lib/cyrus-imapd/deliver"
USERINBOX="$DELIVER -a $USER -m $USER.$USER -r $RETURNPATH"


:0w
| $USERINBOX

в procmail.log я получаю эту ошибку

From root  Fri Sep 30 12:09:28 2011
 Subject: Welcome to pop mail!
  Folder: /home/user/Maildir/new/1317380968.8880_0.localhost            4634
/usr/lib/cyrus-imapd/deliver: option requires an argument -- 'r'
421-4.3.0 usage: deliver [-C <alt_config> ] [-m mailbox] [-a auth] [-r return_path] [-l] [-D]
421 4.3.0 v2.3.16-Fedora-RPM-2.3.16-6.el6
procmail: Program failure (75) of "/usr/lib/cyrus-imapd/deliver"
From root  Fri Sep 30 12:30:34 2011
 Subject: RE: test email
  Folder: /home/user/Maildir/new/1317382234.8910_0.localhost           15507

Любые идеи?

еще немного работы

Я обновил .procmailrc для "myuser", и на этот раз он зависает при доставке в cyrus

PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/Maildir/
DEFAULT=$HOME/Maildir/
LOGFILE=$MAILDIR/procmail.log
VERBOSE=yes
USER=`echo myuser | /usr/bin/tr A-Z a-z` # force lowercase username

# Grab out the Return-Path
:0
* ^Return-Path:\/.*
{
  RETURNPATH = "not.set@domain.invalid"
}

DELIVER="/usr/lib/cyrus-imapd/deliver"
USERINBOX="$DELIVER -e -a $USER -m $USER.$USER"


:0w
| $USERINBOX

вывод из procmail.log ...

procmail: Assigning "USER=myuser"
procmail: No match on "^Return-Path:\/.*"
procmail: Assigning "DELIVER=/usr/lib/cyrus-imapd/deliver"
procmail: Assigning "USERINBOX=/usr/lib/cyrus-imapd/deliver -e -a myuser-m myuser.myuser"
procmail: Executing "/usr/lib/cyrus-imapd/deliver,-e,-a,myuser,-m,myuser.myuser"

а ps -ef показывает, что этот процесс запущен.

topdesk   9043  7367  0 13:25 ?        00:00:00 /usr/bin/procmail -d myuser
root      9050  9043  0 13:25 ?        00:00:00 /usr/lib/cyrus-imapd/deliver -e -a myuser -m myuser.myuser

До вашего редактирования мой комментарий был правильным. Обратного пути не было. Ваш лог-файл подтверждает это. Нут, вместо того, чтобы последовать моему совету, ты изменил сценарий по-другому.

После редактирования вы ввели новый параметр командной строки -e который недоступен для deliver. Увидеть страница руководства. Так что удаление параметра, вероятно, заставит его работать.

Если программа все еще зависает, вам необходимо предоставить журнал почты и посмотреть, сможете ли вы определить причину зависания.