iRedMail: 도메인 별칭이 일부 외부 메일(발음 부호/퓨니코드)에서 작동하지 않습니다.

iRedMail: 도메인 별칭이 일부 외부 메일(발음 부호/퓨니코드)에서 작동하지 않습니다.

내 기본 도메인에 대한 iRedMail 서버를 성공적으로 설정한 후 여기에 있는 단계에 따라 보조 도메인을 별칭으로 추가하려고 했습니다.https://docs.iredmail.org/sql.add.alias.domain.html

아직은 이 방법이 적용되지 않았기 때문에 /etc/postfix/main.cf에 보조 도메인을 추가했습니다.

virtual_alias_domains = domain2.tld
virtual_alias_maps = hash:/etc/postfix/virtual

참고: virtual_alias_maps 아래의 기존 mysql 항목은 제거하지 않았습니다.

그리고 매핑을 /etc/postfix/virtual에 입력하고 나중에 "postmap /etc/postfix/virtual"을 실행했습니다.

@domain2.tld     @domain1.tld

이는 서버 내부에서 작동합니다.[이메일 보호됨]로 보낼 수 있다[이메일 보호됨]user2는 자신의 사서함에서 메일을 받게 됩니다. 외부 이메일은 다음 주소로 보내도 여전히 도착합니다.[이메일 보호됨].

불행하게도 보조 도메인으로의 외부 메일에서는 작동하지 않습니다. 내 /var/logs/mail.log에서 다음 줄을 찾습니다.

postfix/smtpd[5541]: NOQUEUE: reject: RCPT from mail-oi1-x231.google.com[2607:f8b0:4864:20::231]: 451 4.3.5 <[email protected]>: Recipient address rejected: Server configuration problem; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-oi1-x231.google.com>

그리고:

postfix/smtpd[5644]: warning: problem talking to server 127.0.0.1:12340: Connection timed out

포트 12340에서 dovecot이 수신 대기 중입니다.

dovecot    513      root   67u  IPv4  17087      0t0  TCP 127.0.0.1:12340 (LISTEN)

내 비둘기장 로그에서 다음 줄이 반복적으로 발견되었습니다.

dovecot: quota-status: Error: quota-status: Client sent invalid recipient address: Invalid character in path

다른 외부 메일 호스팅 업체를 사용하여 몇 가지 추가 테스트를 거친 후 보조 도메인으로 전송될 때 메일 4개 중 2개가 도착했다는 것을 깨달았습니다. GMail과 Hotmail은 그렇지 않았고 우리 회사의 Exchange와 다른 웹 제공업체는 이를 통해 왔습니다.

그리고 그것이 내가 붙어있는 곳입니다. 나는 두 가지 중 하나를 의심합니다. 이전에 데비안에 메일 서버를 설정한 적이 없기 때문에 필요한 구성을 놓쳤을 가능성이 매우 높거나 비둘기장 오류가 내 보조 도메인으로 인해 발생했습니다. 보조 도메인에는 움라우트(ä/ö/ü)가 포함되어 있는데, 이로 인해 몇 가지 문제가 발생할 수 있다는 것을 잘 알고 있습니다. 따라서 나는 퓨니코드 형식의 변형 도메인도 소유하고 있습니다. 따라서 움라우트가 포함된 보조 도메인을 구성에 추가할 때마다 해당 문제를 해결할 것이라고 가정하고 해당 도메인의 퍼니코드 버전도 추가했습니다.

iRedMail/postfix/dovecot/whateverelseisinvolved는 punnycode/움라우트 자체에서 잘 작동하는 것 같습니다. 메일의 절반만 손실되므로 발신자에 따라 달라지는 것 같습니다(발신자는 오류를 받지 않습니다). 이 문제를 더 자세히 알아보기 위해 확인할 수 있는 이유나 어떤 로그에 대해 추측할 수 있나요? 제가 단순히 뭔가 분명한 구성을 놓친 걸까요?

올바른 방향으로 나아가는 노력은 높이 평가됩니다.

감사합니다, 코딱지

==== 기본 정보 ====

  • iRedMail 버전: 1.4.0 MARIADB 에디션
  • Linux/BSD 배포판 이름 및 버전: Debian GNU/Linux 10(buster) - 10.10
  • 사용 DB: MySQL(MariaDB)
  • 웹 서버: Nginx

==== 편집 ====

기본 설정까지; 데비안 10을 새로 설치한 후 이 가이드의 단계를 따랐습니다.https://www.linuxbabe.com/mail-server/debian-10-buster-iredmail-email-server

가이드에서 변경되는 특정 구성은 게시물에 언급되어 있습니다. Punnycode에 기본 도메인과 보조 도메인이 포함된 인증서를 추가로 발급했습니다.

부팅 시 다양한 로그는 다음과 같습니다.

/var/log/mail.log:

Aug 14 14:24:36 s postfix/postfix-script[1637]: warning: symlink leaves directory: /etc/postfix/./makedefs.out
Aug 14 14:24:37 s amavis[573]: starting. /usr/sbin/amavisd-new at host.domain1.tld amavisd-new-2.11.0 (20160426), Unicode aware, LC_ALL="C", LANG="en_US.UTF-8"
Aug 14 14:24:37 s postfix/postfix-script[1819]: starting the Postfix mail system
Aug 14 14:24:37 s postfix/master[1821]: daemon started -- version 3.4.14, configuration /etc/postfix
Aug 14 14:24:39 s amavis[1915]: Net::Server: Group Not Defined.  Defaulting to EGID '121 121'
Aug 14 14:24:39 s amavis[1915]: Net::Server: User Not Defined.  Defaulting to EUID '113'
Aug 14 14:24:39 s amavis[1915]: No ext program for   .F, tried: unfreeze, freeze -d, melt, fcat
Aug 14 14:24:39 s amavis[1915]: No ext program for   .zoo, tried: zoo, unzoo
Aug 14 14:24:39 s amavis[1915]: No decoder for       .F   
Aug 14 14:24:39 s amavis[1915]: No decoder for       .zoo 
Aug 14 14:24:39 s amavis[1915]: Using primary internal av scanner code for clamav-socket
Aug 14 14:24:39 s amavis[1915]: Found secondary av scanner clamav-clamscan at /usr/bin/clamscan

/var/log/dovecot/dovecot.log:

Aug 14 14:24:26 s dovecot: master: Dovecot v2.3.4.1 (f79e8e7e4) starting up for pop3, imap, sieve, lmtp (core dumps disabled)
Aug 14 14:24:43 s dovecot: stats: Error: (stats-reader): didn't reply with a valid VERSION line: EXPORT#011global
Aug 14 14:24:43 s dovecot: stats: Error: (stats-reader): didn't reply with a valid VERSION line: EXPORT#011global

grep postfix /var/log/syslog:

Aug 14 14:24:36 s postfix/postfix-script[1637]: warning: symlink leaves directory: /etc/postfix/./makedefs.out
Aug 14 14:24:37 s postfix/postfix-script[1819]: starting the Postfix mail system
Aug 14 14:24:37 s postfix/master[1821]: daemon started -- version 3.4.14, configuration /etc/postfix

할당량 기능을 비활성화하고 postfix main.cf에서 SMTPUTF8을 활성화했습니다. mail.log에서 부팅 시 추가 줄을 제외하고는 눈에 띄는 변경 사항이 없습니다.

Aug 14 14:59:46 s amavis[571]: starting. /usr/sbin/amavisd-new at host.domain1.tld amavisd-new-2.11.0 (20160426), Unicode aware, LC_ALL="C", LANG="en_US.UTF-8"

불행히도 그 행동은 여전히 ​​​​동일합니다. 로그를 더 자세히 분석한 후 나는 공급자로부터 오는 메일이 퓨니코드를 통해 전송되는 것처럼 보인다는 것을 깨달았습니다. 반면 GMail은 실제로 움라우트(수신자 메일 주소에 퓨니코드 형식을 특별히 사용하더라도 퓨니코드가 아닌 코드)가 포함된 도메인으로 메일을 보냅니다. 따라서 비ASCII 문자를 처리하도록 서버를 가르치거나 퓨니코드를 통해 전송하도록 Google에 가르쳐야 합니다. 아니면 내 서버에 움라우트를 퓨니코드로 변환하도록 가르쳐 주세요. 옵션 2는 실제로 옵션에 포함되지 않으므로 1 또는 3에 포함됩니다.

Gmail이 아닌 호스트 메일의 mail.log 항목:

postfix/amavis/smtp[2300]: 4Gn0zh0z4FzLnSJ: to=<[email protected]>, orig_to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=4, delays=0.1/0/0.01/3.9, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 4Gn0zm04JHzLxc0)

Gmail 메일의 mail.log 항목:

Aug 14 15:06:44 s postfix/smtpd[2281]: warning: problem talking to server 127.0.0.1:12340: Connection timed out
Aug 14 15:06:44 s postfix/smtpd[2281]: NOQUEUE: reject: RCPT from mail-ot1-x32b.google.com[2607:f8b0:4864:20::32b]: 451 4.3.5 <user@dömain2.tld>: Recipient address rejected: Server configuration problem; from=<[email protected]> to=<user@dömain2.tld> proto=ESMTP helo=<mail-ot1-x32b.google.com>

답변1

아직 완전한 해결책을 찾을 수 없기 때문에(Postfix에서 주소 다시 쓰기가 작동할 수도 있지만 이 이야기의 슬픈 끝이 될 것입니다) 답변으로 진단 단계를 수집하고 있습니다.

  • 획득효과적인명령에 의해 덤프되는 것과 같은 구성 postfix -npostfix -M메일 서버가 다양한 서비스(주로 amavis, 주로)가 통합되는 방식을 명확하게 이해하도록 합니다.

  • 로컬 부분, 주소가 아닌 헤더 및 도메인 이름에서 비ASCII를 개별적으로 테스트합니다(Punycode를 통해 인코딩된 A-레이블은 다음과 같이 시작 xn--하고 비ASCII 문자를 직접 포함하는 유니코드로 있음).

  • Postfix에서 비활성화된 상태 로 유지 SMTPUTF8- Dovecot은 아직 그런 방식으로 수신될 수 있는 메일 처리를 완벽하게 지원하지 않으며 amavis의 문제를 해결하는 데 필요하지도 않고 도움이 되지도 않습니다.

  • amavis에는 다음 $log_level과 같은 설정(Debian, 아마도 /etc/amavis/conf.d/) 이 있습니다.귀하의 일부로 0으로 설정될 수 있습니다.아이레드메일분포.

  • 이를 전환할 수 있는 옵션이 있다면 amavis를 before-queue로 실행하세요.필터(대기열 이후 smtp 대신)에프필터)는 더 유용한 오류나 동작을 드러낼 수도 있고 그렇지 않을 수도 있습니다.

  • amavis는 일부 mariadb 관련 SQL+유니코드 문제를 수정했습니다.사용 중인 버전 2.11 이후에는 데이터베이스 로그에 유용한 오류가 있을 수 있습니다. 또는 기능적으로 동일한 postgres 백엔드로 구성된 동일한 스택을 비교하여 배제할 수 있습니다(postgres는 MySQL&MariaDB의 유니코드 기능/버그를 공유하지 않습니다).

관련 정보