我只使用过像 Thunderbird 这样的 GUI 邮件客户端,并且想尝试将离线地图与 alpine 一起使用。然而我对这一切如何联系在一起感到困惑。
据我了解:
一旦我使用我的帐户配置offlineimap,它将转到每个相应的服务器并使用IMAP将我的邮件镜像到本地文件夹,例如
~/mail/gmail
.想必我可以使用任何邮件客户端来阅读这些电子邮件,如果我对它们进行更改(例如标记为已读或在文件夹之间移动),它们将在下次离线映射同步时推送到服务器。
但是发送邮件呢?我对电子邮件的工作原理有点模糊,但是,它看起来像:
IMAP 仅用于下载/上传要存储在我的邮件提供商服务器上的邮件。所以IMAP实际上不能发送邮件。邮件使用 SMTP 发送。在许多客户端中,当您单击“发送邮件”时,实际发生的情况是您撰写的邮件通过 SMTP 发送并且邮件客户端将邮件的副本保存到您帐户的“已发送”文件夹中,该文件夹将通过 IMAP 传播。
所以我的问题是:
- 我上面的理解正确吗?
- 如果我使用offlineimap,谁会真正通过SMTP 发送我的外发邮件?我是否会设置一些单独的“发送电子邮件”程序来定期检查我的“传出”文件夹并通过 SMTP 发送其中的所有内容(它如何知道要使用哪个 SMTP 服务器和帐户)?或者我仍然需要在 alpine 中设置 SMTP 服务器/凭据吗?
答案1
是的,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
,您可以添加:
set smtp_url="smtps://user:[email protected]"
或者:
set smtp_url="smtp://user:[email protected]:587"
(并确保ssl_force_tls
和ssl_starttls
设置yes
为默认值)。
到您的~/.muttrc
(或更安全地配置它以从某个安全的密码库获取密码)。