~/.forward
파일을 디버깅하거나 메일 에이전트가 기록한 오류를 보는 방법루트 권한 없음?
메일을 처리하기 위해 procmail을 사용하려고 합니다.
procmail을 수동으로 호출할 때
procmail < testMailFile
예상대로 작동합니다(내 procmail 규칙은 입력을 파일에 기록합니다).
~/.forward 파일이 없으면 모든 메일이 기본 메일함인 /var/mail/$USER 및 ~/.procmailrc로 전송됩니다.진행되지 않았다.
~/.forward를 만들 때:
"|exec /usr/bin/procmail || exit 75"
메일 전송이 중지되었지만.procmailrc
아직 처리되지 않았습니다..
$ lsb_release -a|grep Desc
Description: CentOS release 5.10 (Final)
$ rpm -q exim
exim-4.63-10.el5
답변1
procmail을 직접 처리하도록 전송 및 라우터 구성을 설정한 경우 for를 사용할 필요가 없습니다 .forward
.procmail
exim
~에서문서 가져오기 및 내보내기:
# transport
procmail_pipe:
driver = pipe
command = /usr/local/bin/procmail -d $local_part
return_path_add
delivery_date_add
envelope_to_add
check_string = "From "
escape_string = ">From "
umask = 077
user = $local_part
group = mail
# router
procmail:
driver = accept
check_local_user
transport = procmail_pipe
답변2
몇 가지 옵션이 있을 수 있지만 보편적인 것은 아닙니다.
메일 서버의 로그가 누구나 읽을 수 있는 경우 오류 메시지를 확인할 수 있습니다. 메일 서버가 . exim
인지 찾 /var/log/exim/
거나 간단히 찾으십시오 /var/log/mail
. 기록된 내용은 별도의 웜 캔으로 끝나고 시작점은 구성이지만 syslog
이것이 유일한 게임은 아니지만 /etc/syslog.conf
시스템에 게임이 있는 경우 아마도 그럴 것입니다(특히 CentOS 이전 플랫폼과 같은 것을 사용하는 경우). ).
.forward
(로그가 누구나 읽을 수 없는 경우 시스템 관리자에게 로그를 변경하도록 설득하거나 읽기 액세스 권한이 있는 그룹에 추가하도록 할 수 있습니다. 또는 적어도 특정 지점에서 문제 grep할 수 있습니다. 최근 시간).
둘째, 이메일이 반송되나요? 일반적으로 메일 서버가 메일 배달에 실패하면 다소 자세한 진단 정보와 함께 오류 메시지(DSN, "바운스", "부메랑")를 다시 보냅니다.
운이 좋으면 이메일을 보내지 않고도 메일 서버에 연결해 통신하면 진단을 받을 수 있습니다. localhost
다음과 같이 포트 25에서 실행되는 SMTP 서버가 있다고 가정합니다 .
bash@centos$ telnet localhost 25
>>> Connecting to localhost ...
>>> 220 Exim is listening, congratulations.
<<< vrfy [email protected]
>>> 454 4.7.1 [email protected] relay access denied
<<< quit
>>> 221 So long, sayonara, au revoir.
여기서는 <<<
입력한 내용을 나타내며 >>>
원격 시스템의 응답입니다. 이 특정 오류 메시지는 거의 발생하지 않지만 최소한 보고 기대할 수 있고 이해해야 하는 내용의 예를 제공합니다(기본적으로 HTTP와 마찬가지로 2xx는 괜찮고 4xx 또는 5xx는 오류입니다).
전체적으로 Procmail에는 실패 모드 수가 상당히 제한되어 있습니다. 귀하의 파일에 대한 권한을 .procmailrc
가장 먼저 조사해야 할 것 같습니다.
뻔뻔한 플러그: 또한 참조http://porkmail.org/era/mail/procmail-debug.html