如何使用 sendmail 以本地用户身份从远程计算机发送邮件并使用密码保护

如何使用 sendmail 以本地用户身份从远程计算机发送邮件并使用密码保护

我有一个正在运行的 sendmail 服务器,目前只接受从本地主机发送的邮件。所有发出的邮件都伪装成本地主机,@mywebsite.com并且服务器上绑定了 DKIM SPF MX 和 A 记录。

我已经在服务器上安装了 dovecot IMAP,以便从我家里的计算机访问服务器上收到的邮件。

我希望能够以 sendmail 服务器用户的身份从我的家用计算机向我的 sendmail 服务器发送邮件。(smtp 发件箱)

但我需要用密码保护该用户,以避免成为垃圾邮件中继。

我希望我的邮件通过服务器运行以享受 DKIM SPF MX 和 A 记录。

答案1

已经提出的 VPN 建议没有任何问题,但是 sendmail 能够在应用层处理这个问题。

如果您想这样做,则有两个部分:设置 sendmail 以便它支持 TLS(加密),并设置 sendmail 以便它支持中继后 SMTP-AUTH(允许通过加密的 SMTP 通道进行身份验证,并告诉 sendmail 允许从已通过身份验证的客户端进行中继)。

对于 TLS 支持,你需要在 中添加以下内容sendmail.mc

define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
define(`confSERVER_CERT', `/etc/pki/tls/certs/server.crt')dnl
define(`confSERVER_KEY', `/etc/pki/tls/certs/server.key')dnl

您还需要创建(自签名)证书和密钥文件;网上有很多关于如何操作的教程,所以我不建议在这里再重复一遍。

对于 SMTP AUTH 和中继支持,您需要在 中进行以下操作sendmail.mc

define(`confAUTH_OPTIONS', `A p y')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl

我还发现我需要以下行/etc/sasl2/Sendmail.conf

pwcheck_method:saslauthd

并且saslauthd需要运行。这样我就可以使用与在 dovecot 上进行身份验证时相同的凭据进行登录,然后 sendmail 就可以顺利地转发我的电子邮件了。

相关内容