Postfix 주소 전달 및 /etc/aliases 관련:

Postfix 주소 전달 및 /etc/aliases 관련:

Postfix와 Dovecot이 포함된 Debian 서버가 있습니다. 최근에는 Dovecot에 Sieve를 설치하고 이메일 전달에 LMTP를 사용하도록 Postfix를 구성했습니다. 그 시점부터 일반 사용자 이름은 구분 기호와 함께 사용할 수 없습니다. 구분 기호는 aliases-db가 관련된 경우에만 해결되는 것 같습니다. 로그는 다음과 같이 말합니다.

User doesn't exist: [email protected] (in reply to RCPT TO command)

다음은 기본 설정과 몇 가지 예입니다.

username: doe  
delimiter: -    
[email protected] -> works  
[email protected] -> works  
[email protected] -> unknown user  
[email protected] -> works  

/etc/aliases:

john.doe: doe  

/etc/postfix/main.cf:

recipient_delimiter = -
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mailbox_transport = lmtp:unix:private/dovecot-lmtp
# All options: propagate_unmatched_extensions = canonical, virtual, alias, forward, include
propagate_unmatched_extensions =

답변1

여기서 문제는 Postfix가 아니라 Dovecot에 있습니다. Dovecot은 Postfix에 대해 모르기 때문에 recipient_delimiter사용자 쿼리가 다음과 같다고 가정해야 합니다.[이메일 보호됨]실제로 의미하는 것은 ""example.com" 도메인에서 "doe-test" 사용자를 찾습니다"입니다.

다행히 해결 방법은 간단합니다.Postfix에 말한 내용을 Dovecot에 알리기:

  1. 열려 있는/etc/dovecot/conf.d/15-lda.conf
  2. 포함된 줄의 주석 처리를 해제 하고 다른 것으로 #recipient_delimiter = +바꿉니다 ( 귀하의 경우).+-
  3. 이익!

Postfix 주소 전달 및 /etc/aliases 관련:

이것이 설정에서 작동하는 이유 [email protected]는 별칭 조회가 Postfix 자체에서 수행되기 때문입니다.앞으로메시지 전달 여부를 결정합니다(예: LMTP는 이 단계에서 전혀 관련이 없습니다).

그래서 일어나는 일은 다음과 같습니다:

  • [email protected]Postfix는 데몬을 사용하여 메시지를 수신 smtpd하고 메시지 대기열에 넣습니다.
  • postfix qmgr데몬은 메시지 처리를 예약합니다.
  • qmgr구문 분석 메시지 대상 사용trivial-rewrite주문하다
    • 여기에서 주소 구문 분석 및 조회가 수행되므로 수신자 구분 기호가 처음으로 사용됩니다.
    • 특히 Postfix는 별칭 테이블에서 다음 조회를 수행합니다.
      1. [email protected]그리고 john.doe-test(원래 주소)
      2. [email protected]john.doe(주소 확장자가 없는 주소)
      3. (사용된 주소와 구성에 따라 다른 것이 있을 수 있습니다.)
    • 조회가 성공하면 새 대상 주소가 반환되고 메시지는 다시 큐에 배치됩니다.
  • 결국 메시지는 (어떤 식으로든) 배달 준비가 된 것으로 표시되며(반송되더라도 이는 단지 특별한 배달 유형일 뿐입니다...) qmgr적절한 명령이 해당 배달을 수행하도록 예약됩니다(예:lmtp) – 메시지와 최종 배달 주소를 전달합니다(이 경우 [email protected]).
    • 전달에 Postfix를 사용하는 경우 lmtp실제 LMTP 데몬(Dovecot)에 연결이 설정되고 LMTP 프로토콜을 사용하여 메시지(최종 전달 주소 포함)가 전달됩니다.
  • Dovecot의 LMTP 데몬은 전체 재작성 프로세스에 대해 아무것도 모르고 [email protected]수신한 최종 배달 주소( )를 기반으로만 메시지 전달을 시도합니다.

이제 이 상황을 고려하면 [email protected]해당 주소에 대한 별칭 테이블 조회가 결코 성공하지 못하므로 전달 주소가 다시 작성되지 않는다는 것을 알 수 있습니다. 따라서 Postfix는 결국 [email protected]LMTP를 사용하여 메시지를 전달하려고 시도합니다.

Postfix는 LMTP를 사용하여 전달을 시도하기 전에 주소 확장자를 삭제해야 하지 않습니까?
아마도, 하지만아니요그것을 버리면 엄청난 이점을 얻을 수 있습니다. Dovecot은 다음과 같은 일을 할 수 있습니다.알다주소 확장에 관해 이것은 별로 유용해 보이지 않을 수도 있지만 Dovecot 측에서 주소 확장을 처리하면 다음과 같은 몇 가지 멋진 기능이 가능합니다.Sieve를 사용하여 이메일을 IMAP 하위 폴더에 자동으로 배치.

관련 정보