시스템 사용자가 아닌 사용자로만 sendmail 사용

시스템 사용자가 아닌 사용자로만 sendmail 사용

시스템 사용자 없이 sendmail을 사용해야 합니다.

내 구성에 여전히 존재하는 유일한 문제는 FEATURE(virtusertable)다음과 같이 내 virtusertable에서 RHS의 최종 시스템 사용자를 원한다는 것입니다.

@domain.tld           [email protected]
[email protected]       systemuser

문제는 그러한 시스템 사용자가 없으며 @domain.tld에 대한 모든 메일이 사용자로서 전체 이메일 주소를 처리할 수 있는 내 lda(procmail, 그 다음 dovecot-lda)로 전달되기를 원한다는 것입니다.

나는 이미 다음과 같은 것을 시도했습니다.

define(`_VIRTUSER_STOP_ONE_LEVEL_RECURSION_', `true')dnl
define(`_NEED_MACRO_MAP_',`1')dnl

하지만 이것도 도움이 되지 않습니다.

우리는 이미 virtusertable을 읽는 procmail 스크립팅에 대한 추악한 해결 방법을 가지고 있지만, 이를 sendmail로 처리하여 lda에 RHS 및/또는 사용자가 없는 보낸 이메일이 반송되도록 하고 싶습니다. 또한 dovecot-lda를 사용하는 것은 sendmail의 직접 lda이기도 하며 설정에는 옵션이 없습니다. :(

어떤 도움이라도 환영합니다!

답변1

보세요센드메일 FAQ 3.29- "가상 도메인의 여러 사용자가 단일 사서함으로 이동하는 경우 실제 수신자를 지정하는 헤더를 어떻게 추가합니까?"

IMHO 원하는 것을 제공하도록 쉽게 조정할 수 있습니다. 필요한 모든 후크를 제공합니다.

그런데 선택한 메일러에 "@domain.tld" virtusertable 항목을 사용할 수 있습니다 error. virtusertable에 나열되지 않은 가상 사용자에게 보내는 메시지를 거부할 수 있습니다.

@domain.tld           error:nouser No such user here
[email protected]       systemuser+%1
[email protected]        systemuser+%1

상담도 가능해요https://www.sendmail.com/sm/open_source/tips/virtual_hosting/

답변2

나는 두 가지 방법으로 이 문제를 해결했습니다.

a) 패치를 적용 libsm/mbdb.c하고 sendmail/recipient.cdovecot 사용자 테이블을 추가로 조회합니다. 이 작업을 수행하려면 LOCAL_RULE_0을 약간 조정해야 했습니다.

b) Andrzej는 메일러 테이블 및 액세스 파일을 사용하는 솔루션에 대한 stackoverflow에 대한 비슷한 질문에서 저를 지적했습니다. 이 아이디어에 따라 필요한 모든 것을 갖추는 훨씬 더 쉬운 솔루션을 찾았습니다.

가상 사용자 가능:

@domain.tld              user_domain_tld
[email protected]          user_another_tld

별칭:

user_domain_tld: "|/bin/procmail -a [email protected]"
user_another_tld: "|/bin/procmail -a [email protected]"

솔루션 a)는 virtusertable에서 허용되는 구문을 변경하고 시간이 지남에 따라 하나의 파일만 확인해야 하기 때문에 가지고 있으면 좋습니다. 여기서 솔루션 b)는 이를 달성하는 쉬운 방법으로 인해 승리하며 추가로 다음과 더 잘 호환됩니다. sendmail의 향후 릴리스. 모든 작업이 끝나면 솔루션 a)를 사용하지만 크리스마스 후에는 솔루션 b)로 변경하겠습니다 ;)

관련 정보