我只使用过像 Thunderbird 这样的 GUI 邮件客户端,并且想尝试将 offlineimap 与 alpine 一起使用。但是,我对这一切如何联系在一起感到困惑。
据我了解:
一旦我使用我的帐户配置了offlineimap,它将转到每个相应的服务器并使用 IMAP 将我的邮件镜像到本地文件夹,例如
~/mail/gmail
. 大概我可以使用任何邮件客户端来阅读这些电子邮件,如果我对它们进行更改(例如标记为已读或在文件夹之间移动),它们将在下次离线 imap 同步时被推送到服务器。
但是发送邮件呢?我对电子邮件的工作方式有点模糊,但是,它看起来像:
IMAP 仅用于下载/上传要存储在我的邮件提供商服务器上的邮件。所以IMAP实际上不能发送邮件。邮件使用 SMTP 发送。在许多客户端中,当您单击“发送邮件”时,实际发生的是您撰写的邮件通过 SMTP 发送,并且邮件客户端将邮件的副本保存到您帐户的“已发送”文件夹中,该文件夹将被传播通过 IMAP。
所以我的问题是:
- 我上面的理解正确吗?
- 如果我使用offlineimap,谁会真正通过SMTP 发送我的外发邮件?我是否会设置一些单独的“发送电子邮件”程序,该程序会定期检查我的“传出”文件夹并通过 SMTP 发送其中的所有内容(它如何知道要使用哪个 SMTP 服务器和帐户)?或者我还需要在 alpine 中设置 SMTP 服务器/凭据吗?
是的,IMAP 是一种访问存储在另一台机器上的邮箱内容的协议,它与电子邮件发送、路由和传递本身无关。
SMTP 是通过网络发送电子邮件的协议。
要发送电子邮件,您可以将它们提交到您机器上的本地邮件服务器,前提是有一个并且已正确配置为接受和路由电子邮件,在这种情况下,可以通过 SMTP 或使用
sendmail
命令完成,或者将其提交到另一台邮件服务器通过网络。您可以将本地邮件服务器(exim、postfix...)配置为直接向收件人发送电子邮件,但是现在,您发送的那些电子邮件可能会被收件人服务器视为垃圾邮件,尤其是如果您自己的地址来自一个已知的电子邮件提供商,所以不推荐。
如果您通过 IMAP 访问您的邮箱,而不是访问您计算机上的本地邮箱,其中邮件由本地邮件服务器传递,则表明您的电子邮件是由某些第三方邮件提供商处理的。除了 imap 访问之外,这些电子邮件提供商还会提供服务器的地址,您可以在经过身份验证后向该地址提交电子邮件。
理论上,您可以配置您的本地邮件服务器,以便它通过该提供商的 smtp 服务器将电子邮件中继给外部收件人,使用您自己的系统上所有用户的凭据,但您可能会说这听起来是个坏主意,即使只是从问责制的观点。
最好让您系统上的每个用户配置他们的邮件用户代理(他们的邮件客户端应用程序,无论是 Thunderbird、evolution 还是 mutt/pine/mailx...),以将所有电子邮件直接提交给他们的邮件提供商,每个邮件都有自己的凭据.
您需要确保启用了加密。通常,此类电子邮件提交是通过 SMTP 完成的,但使用端口 587(相应的服务称为
submission
)而不是为邮件中继保留的 25,并且使用 STARTTLS SMTP 命令启用加密。通常也可以通过 TCP 端口 465 (smtps
) 上的 TLS 直接联系邮件提交服务器。每个 MUA 都有自己的方式来配置邮件发送。例如,使用
mutt
,您可以添加:或者:
(并确保
ssl_force_tls
和ssl_starttls
设置yes
为应该是默认值)。到您的
~/.muttrc
(或更安全地配置它以从某个安全的密码库中获取密码)。