首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iRedMail:不处理某些外部邮件的域别名(diacritics/punycode)

iRedMail:不处理某些外部邮件的域别名(diacritics/punycode)
EN

Server Fault用户
提问于 2021-08-13 16:02:01
回答 1查看 671关注 0票数 2

在成功地为我的主域设置了一个iRedMail服务器之后,我尝试通过以下步骤添加我的辅助域作为别名:https://docs.iredmail.org/sql.add.alias.domain.html

这还没有起作用,因此我还将次要域添加到/etc/postfix/main.cf中:

代码语言:javascript
复制
virtual_alias_domains = domain2.tld
virtual_alias_maps = hash:/etc/postfix/virtual

注意:我没有删除virtual_alias_maps下的任何现有mysql条目。

然后将映射输入/etc/postfix/virtual,然后执行"postmap /etc/后缀/虚拟“:

代码语言:javascript
复制
@domain2.tld     @domain1.tld

这在服务器的内部工作。user2 1@domain1.tld可以发送给user2 2@domain2.tld,user2将在他的邮箱中接收邮件。当发送到user@domain1.tld时,外部电子邮件仍然会到达。

不幸的是,它不能使用外部邮件到第二个域。在我的/var/log/mail.log中,我发现了以下行:

代码语言:javascript
复制
postfix/smtpd[5541]: NOQUEUE: reject: RCPT from mail-oi1-x231.google.com[2607:f8b0:4864:20::231]: 451 4.3.5 : Recipient address rejected: Server configuration problem; from= to= proto=ESMTP helo=

和:

代码语言:javascript
复制
postfix/smtpd[5644]: warning: problem talking to server 127.0.0.1:12340: Connection timed out

在端口12340上,多维柯正在监听:

代码语言:javascript
复制
dovecot    513      root   67u  IPv4  17087      0t0  TCP 127.0.0.1:12340 (LISTEN)

在我的dovecot日志中,我多次找到以下行:

代码语言:javascript
复制
dovecot: quota-status: Error: quota-status: Client sent invalid recipient address: Invalid character in path

经过对不同外部邮件库的进一步测试后,我意识到每4封邮件中有2封是在发送到第二域时到达的。GMail和Hotmail没有,我的公司的交换和其他一些网络提供商来了。

这就是我被困的地方。我怀疑两件事中的一件:要么我忽略了一个必要的配置,这似乎非常有可能,因为我以前从未在Debian上设置过邮件服务器,或者dovecot错误是由我的次要域引起的。二级域名包含一个umlaut (//ü),我很清楚这会引起一些问题。因此,我也拥有它的小代码格式变体中的域。因此,每当我将我的次要域添加到配置中时,我也添加了它的注释代码版本,假设它能解决这方面的任何问题。

iRedMail/postfix/dovecot/whateverelseisinvolved似乎可以很好地处理punnycode/umlauts本身,它只是依赖于发件人,因为只有一半的邮件丢失了(发件人不会收到错误)。我能查到什么日志才能更深入地研究这个问题,你猜得到吗?我只是错过了配置一些显而易见的东西吗?

任何向正确方向的推进都会受到高度赞赏。

你好,鼻涕

====基本信息====

  • iRedMail版本:1.4.0MariaDB版本
  • Linux/BSD发行版名称和版本: Debian GNU/Linux 10 (buster) - 10.10
  • 二手DB: MySQL (MariaDB)
  • Web服务器: Nginx

====编辑====

就基本设置而言,在完成干净的Debian 10安装之后,我遵循了本指南https://www.linuxbabe.com/mail-server/debian-10-buster-iredmail-email-server中的步骤

文章中提到了从指南中更改的任何特定配置。此外,我还颁发了一个证书,其中包括主域和次要域的双关码。

在这里,引导上的各种日志:

/var/log/mail.log:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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后缀/var/log/syslog:

代码语言:javascript
复制
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

我已经在后缀SMTPUTF8中禁用了配额特性并启用了main.cf,除了在mail.log中启动时增加了一行之外,没有明显的变化:

代码语言:javascript
复制
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"

不幸的是,这种行为仍然是一样的。在进一步分析日志之后,我意识到似乎来自提供者的邮件是通过微码发送的(即使我用umlaut/non char专门将其发送到域)。另一方面,GMail实际上将邮件发送到包含umlaut的域(即使我在收件人邮件地址中特别使用了小代码格式)。所以,我要么需要教我的服务器如何处理非ASCII字符,要么我需要教谷歌通过微码发送。或者教我的服务器把umlauts翻译成小代码。选项2显然不是真正的选项,所以1或3是的。

来自非GMail邮件的mail.log条目:

代码语言:javascript
复制
postfix/amavis/smtp[2300]: 4Gn0zh0z4FzLnSJ: to=, orig_to=, 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)

来自mail.log邮件的GMail条目:

代码语言:javascript
复制
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 : Recipient address rejected: Server configuration problem; from= to= proto=ESMTP helo=
EN

回答 1

Server Fault用户

发布于 2021-09-05 02:44:05

由于我仍然无法找到完整的解决方案(后缀中的地址重写可能有效,但这将是这个故事的可悲结局),所以我正在收集我的诊断步骤,并给出一个答案:

  • 获取有效的配置,例如通过命令postfix -npostfix -M转储邮件服务器,以确保清楚地了解不同服务(主要是amavis)集成的方式。
  • 在本地部分、非地址标头和域名中单独测试非ASCII(以A-标签的形式通过Punycode编码开始像xn--一样开始,并作为Unicode直接包含非ASCII字母)
  • SMTPUTF8禁用在Postfix中还不完全支持以这种方式接收邮件,它既不需要也不一定有助于解决amavis中的问题。
  • amavis有一个$log_level设置(在Debian中,大概在/etc/amavis/conf.d/中),即可能被归零为您iRedMail分布
  • 如果您可以选择切换,那么将amavis作为队列前<>milter运行(而不是作为队列后smtp filter)可能会或不会显示更有用的错误或行为。
  • 在您使用的2.11版本之后,数据库日志中可能出现了一个有用的错误--或者通过比较配置与功能相同的postgres后端(postgres不共享MySQL&MariaDB的Unicode特性/bug)来排除相同的堆栈
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1074484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档