传出 smtp 根据发件人地址选择服务器

传出 smtp 根据发件人地址选择服务器

我使用名为 Alpine 的电子邮件客户端。目前,我以几种不同模式之一启动它,以便根据我正在执行的操作指定传出 SMTP 服务器,特别是我希望使用的发件人地址。

更方便的是,如果我可以简单地指示 Alpine 使用我自己的 SMTP 服务器(在我的笔记本电脑上),该服务器又会根据我发送的每条消息的发件人地址选择一个中继服务器。

我希望有人已经在这样做了(鉴于最近收紧了接受邮件的限制,这似乎应该是一种常见的需求)并且它并不复杂。

(作为奖励,我还希望能够以一种使用本地服务器的模式启动 Alpine,该服务器等到周一早上才发送消息。)

这可能是同样的问题:根据发件人电子邮件地址更改 mutt 中的 SMTP 身份验证,但它很旧,关于 esmtp 的参考也是如此 – 我不确定 esmtp 是否与现代安全协议等保持同步。

答案1

Alpine 电子邮件客户端的答案

Alpine 的最新版本针对 Ubuntu 进行了编译,其中包含许多可用的补丁,即增强功能,其中包括一项名为“smtp-rules”的功能。它没有完善的文档,但.pinerc对我来说,该部分是这样的。它处理来自我的雇主、母校和两个 Gmail 身份的电子邮件地址:

# Unfortunately, using gmail's SMTP servers require setting up 2-factor authorization,
# which then allows you to get an "app password" for each account, which can be used
# by Alpine. Instead of doing this, for now I'm using MIT's, which is changing but
# currently letting through my gmail identities
smtp-rules= _FROM_ == {[email protected]} => _SMTP_{smtp.office365.com:587/tls/[email protected]}
smtp-rules= _FROM_ == {[email protected]} => _SMTP_{outgoing-alum.mit.edu:465/ssl/user=me}
smtp-rules= _FROM_ == {[email protected]} => _SMTP_{outgoing-alum.mit.edu:465/ssl/user=me}
smtp-rules= _FROM_ == {[email protected]} => _SMTP_{outgoing-alum.mit.edu:465/ssl/user=me}

对于其他客户,或使用 Alpine 的其他方式

我还没有测试 esmtp,因为上面的效果很好,但这似乎是一个替代方案:

  1. 安装esmtp

  2. 将 smtp-server 字段设置为可执行文件,/usr/local/bin/esmtp

  3. 将类似以下内容放入您的~/.esmtprc文件中:

    identity [email protected]
        hostname mail.server.com:25
        username "joe"
        password "secret"
        starttls enabled
        default
    identity [email protected]
        hostname smtp.gmail.com:587
        username "[email protected]"
        password "secret2"
        starttls required
    

esmtp部分参考:使用 eSMTP 发送邮件以实现简单的单用户系统 - TechRepublic

相关内容