dovecot 및 간단한 콘텐츠 필터(Postfix)를 사용하여 Always_bcc에 중복 메시지 전달

dovecot 및 간단한 콘텐츠 필터(Postfix)를 사용하여 Always_bcc에 중복 메시지 전달

다음을 사용하여 postfix 메일 서버를 설정하려고 합니다.

내 관련 구성은 다음과 같습니다

master.cf

smtp      inet  n       -       y       -       -       smtpd
  -o content_filter=filter:dummy
pickup    unix  n       -       y       60      1       pickup
cleanup   unix  n       -       y       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       y       1000?   1       tlsmgr
rewrite   unix  -       -       y       -       -       trivial-rewrite
bounce    unix  -       -       y       -       0       bounce
defer     unix  -       -       y       -       0       bounce
trace     unix  -       -       y       -       0       bounce
verify    unix  -       -       y       -       1       verify
flush     unix  n       -       y       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       y       -       -       smtp
relay     unix  -       -       y       -       -       smtp
        -o syslog_name=postfix/$service_name
showq     unix  n       -       y       -       -       showq
error     unix  -       -       y       -       -       error
retry     unix  -       -       y       -       -       error
discard   unix  -       -       y       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       y       -       -       lmtp
anvil     unix  -       -       y       -       1       anvil
scache    unix  -       -       y       -       1       scache
postlog   unix-dgram n  -       n       -       1       postlogd
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
filter    unix  -       n       n       -       10      pipe
  flags=Rq user=filter null_sender=
  argv=/var/spool/filter/scripts/filter.sh -f ${sender} -- ${recipient}
dovecot    unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/dovecot-lda -f ${sender} -d ${recipient}

main.cf (관련 부분만)

always_bcc = [email protected]
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

/var/spool/filter/scripts/filter.sh

#!/bin/sh

/usr/bin/cat | /var/spool/filter/scripts/mailfilter | /usr/sbin/sendmail -G -i "$@"

exit $?

  • 내 사용자의 이메일 주소는 모두 "(초기)입니다.[이메일 보호됨]" 형식
  • 역할을 수행하는 일부 보안 그룹이 있으며 각 보안 그룹에는 "[이메일 보호됨]" 형식.
  • 기본적으로 역할 이메일은 여러 사용자의 별칭 역할을 합니다.
  • 사용자 대신 그룹/역할을 사용하여 권한을 설정할 수 있습니다.

예를 들어

  • 내 사용자 이메일은 다음과 같습니다.[이메일 보호됨]
  • 나는 IT 부서 역할의 구성원입니다([이메일 보호됨])
  • 저는 몇 가지 다른 역할에 속해 있지만 주요 역할은 "IT 부서"입니다.
  • 나는 이 그룹/역할의 구성원이기 때문에 다른 구성원과 마찬가지로 특정 권한을 갖습니다.
  • 각 이메일을 다음으로 보내세요.[이메일 보호됨]나와 다른 회원들에게 연락할 것입니다.

지금까지는 아주 좋습니다...하지만 상사는 제가 보내는 모든 이메일을 사용하기를 원합니다.[이메일 보호됨](역할) 주소 대신[이메일 보호됨](사용자). 즉, 전송된 모든 메시지는 사용자 이메일이 아닌 주 역할 이메일을 사용합니다.

/var/spool/filter/scripts/mailfilter이 작업을 수행하는 내부적으로 만들어진 필터입니다("from" 주소를 "(initial).surname@"에서 "role@"으로 변경하고 LDAP 서버를 확인합니다).

결코 실패하지 않습니다(오류 조건이 발생하면 수정 없이 stdin을 stdout으로 복사하므로 주소는 변경되지 않습니다).

문제는 내가 이메일을 보낼 때 두 개의 사본이 다음으로 전송된다는 것입니다.[이메일 보호됨]로그에 표시된 대로 예상한 대로 복사본이 없습니다.


Dec 16 16:23:08 correo2 postfix/smtpd[32453]: connect from informatica1.mydomain.example[10.128.159.15]
Dec 16 16:23:08 correo2 postfix/smtpd[32453]: DD925380C87: client=informatica1.mydomain.example[10.128.159.15], sasl_method=LOGIN, [email protected]
Dec 16 16:23:08 correo2 postfix/cleanup[32456]: DD925380C87: message-id=<[email protected]>
Dec 16 16:23:09 correo2 postfix/qmgr[32275]: DD925380C87: from=<[email protected]>, size=2749, nrcpt=2 (queue active)
Dec 16 16:23:09 correo2 postfix/pickup[32274]: AAFEF380C8D: uid=110 from=<[email protected]>
Dec 16 16:23:09 correo2 postfix/pipe[32457]: DD925380C87: to=<[email protected]>, relay=filter, delay=0.81, delays=0.11/0/0/0.7, dsn=2.0.0, status=sent (delivered via filter service)
Dec 16 16:23:09 correo2 postfix/pipe[32457]: DD925380C87: to=<[email protected]>, orig_to=<[email protected]>, relay=filter, delay=0.81, delays=0.11/0/0/0.7, dsn=2.0.0, status=sent (delivered via filter service)
Dec 16 16:23:09 correo2 postfix/qmgr[32275]: DD925380C87: removed
Dec 16 16:23:09 correo2 postfix/cleanup[32456]: AAFEF380C8D: message-id=<[email protected]>
Dec 16 16:23:09 correo2 postfix/qmgr[32275]: AAFEF380C8D: from=<[email protected]>, size=2927, nrcpt=3 (queue active)
Dec 16 16:23:10 correo2 dovecot: lda([email protected])<32488><2DSfML3hnGPofgAA0V72BQ>: msgid=<[email protected]>: saved mail to INBOX
Dec 16 16:23:10 correo2 postfix/pipe[32473]: AAFEF380C8D: to=<[email protected]>, relay=dovecot, delay=1.1, delays=0.79/0/0/0.28, dsn=2.0.0, status=sent (delivered via dovecot service)
Dec 16 16:23:10 correo2 dovecot: lda([email protected])<32490><Au2fML3hnGPqfgAA0V72BQ>: msgid=<[email protected]>: saved mail to INBOX
Dec 16 16:23:10 correo2 postfix/pipe[32471]: AAFEF380C8D: to=<[email protected]>, relay=dovecot, delay=1.1, delays=0.79/0/0/0.34, dsn=2.0.0, status=sent (delivered via dovecot service)
Dec 16 16:23:10 correo2 dovecot: lda([email protected])<32489><BE2gML3hnGPpfgAA0V72BQ>: msgid=<[email protected]>: saved mail to INBOX
Dec 16 16:23:10 correo2 postfix/pipe[32470]: AAFEF380C8D: to=<[email protected]>, relay=dovecot, delay=1.1, delays=0.79/0/0/0.35, dsn=2.0.0, status=sent (delivered via dovecot service)
Dec 16 16:23:10 correo2 postfix/qmgr[32275]: AAFEF380C8D: removed
Dec 16 16:23:11 correo2 postfix/smtpd[32453]: disconnect from informatica1.mydomain.example[10.128.159.15] ehlo=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=6

uid=110은 "필터" 사용자 uid입니다. "보낸 사람"은 이메일 내부 헤더에서만 변경되므로 로그에는 표시되지 않습니다.

이 이중 배송 세부 사항 외에는 모든 것이 정상적으로 실행되고 있습니다.

문제를 해결하는 방법을 아시나요?

관련 정보