安装

安装

在过去的几天里,我尝试设置 Exim4 来处理从 Web 应用程序发送的所有邮件。

它似乎有效,但我还没有找到如何对将与 EHLO 一起发送的主机名进行硬编码? (我不想设置/etc/hostname

已找到配置中提到的变量MAIN_HARDCODE_PRIMARY_HOSTNAME,但尚未找到设置它的方法。这个变量是设置主机名的最简单方法还是有更好的方法?

以下是完整的安装/配置。我错过了什么吗?

Exim version 4.92 Debian Buster 10

安装

apt-get install exim4-daemon-light

配置 Exim4

dpkg-reconfigure exim4-config

Type:           internet site
FQDN:           smtp.mydomain.com
SMTP listener:      (empty)
Mail destinations:  (empty)
Domain relay:       (empty)
Machine relay:      (empty)
DNS queries minimal:    No
Delivery method:    Maildir
Split conf files:   No

启用 TLS 并生成证书

printf "MAIN_TLS_ENABLE = true\n" >> /etc/exim4/exim4.conf.localmacros
/usr/share/doc/exim4-base/examples/exim-gencert

检查反向 DNS(IP -> smtp.mydomain.com)

https://mxtoolbox.com/ReverseLookup.aspx

获取 IPv6

ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80

/etc/主机

[ipv4]  smtp.mydomain.com
[ipv6]  smtp.mydomain.com

取消注释“/etc/exim4/exim4.conf.template”

# plain_server:
# driver = plaintext
# public_name = PLAIN
# server_condition = "${if crypteq{$3}{${extract{1}{:}{${lookup{$2}lsearch{CON$
# server_set_id = $2
# server_prompts = :
# .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
# server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
# .endif

添加用户/密码 -> '/etc/exim4/passwd'

/usr/share/doc/exim4-base/examples/exim-adduser

DKIM/SPF

我在服务器上设置了 DKIM 密钥,并在 DNS 上设置了 DKIM/SPF,两者都有效

答案1

设置REMOTE_SMTP_HELO_DATA = whatever.you.want/etc/exim4/exim4.conf.localmacros.从 4.69-10 开始,Debian 软件包就支持它。从/usr/share/doc/exim4/changelog.Debian.gz

  • 允许通过直接设置 REMOTE_SMTP_HELO_DATA 宏来设置传出 smtp helo/ehlo。以前,这只是应该用作 REMOTE_SMTP_HELO_FROM_DNS 的辅助宏。 REMOTE_SMTP_HELO_FROM_DNS 覆盖手动 REMOTE_SMTP_HELO_DATA 数据设置。关闭:#514113

Debian 配置模板使用此宏来填充helo_data SMTP 传输选项

相关内容