GNOME/Evolution
Evolution 是一款用于管理电子邮件、日历、联系人、任务、笔记和 RSS 网站订阅的应用程序。它是 GNOME 的默认邮件客户端,支持 IMAP、Microsoft Exchange Server、Novell GroupWise、LDAP、WebDAV、CalDAV 以及许多其他服务和协议。
安装
安装 evolution 包。非 GNOME 用户还应参考 #在 GNOME 之外使用 Evolution。
附加插件
- Bogofilter 插件 — 使用 Bogofilter 对 Evolution 进行垃圾邮件过滤。
- EteSync 插件 — 使用 EteSync 开源协议,为 Evolution 提供端到端加密的隐私信息同步。
- EWS 插件 — 通过 Exchange Web Services 实现 MS Exchange 集成。
- On 插件 — 支持从系统托盘控制 Evolution。
- SpamAssassin 插件 — 使用 SpamAssassin 对 Evolution 进行垃圾邮件过滤。
IMAP 设置
请参阅 GNOME 帮助中的 IMAP+ 邮件账户设置。
替代 IMAP 设置
让 Evolution 直接连接 IMAP 服务器的一种替代方法是将 IMAP 服务器同步到您的 PC。这会占用与您的邮件量一样多的硬盘空间,不过可以限制同步的文件夹(请参阅 #OfflineIMAP 设置)。另一个好处是(该应用的初衷),您在 PC 上拥有邮件的完整副本,包括附件,即使在没有互联网连接的情况下也能检索。
要进行此设置,您需要 安装 offlineimap 包。有关更多信息,请参阅 https://www.offlineimap.org/。
OfflineIMAP 设置
OfflineIMAP 从 ~/.offlineimaprc 文件获取设置,您需要创建该文件。大多数用户都可以使用下面的模板文件来设置标准的 IMAP 服务器。有关更多信息,请参阅 OfflineIMAP。
[general]
accounts = MyAccount
# Set this to the number of accounts you have.
maxsyncaccounts = 1
# You can set ui = TTY.TTYUI for interactive password entry if needed.
# Setting it within this file (see below) is easier.
ui = Noninteractive.Basic
[Account MyAccount]
# Each account should have a local and remote repository
localrepository = MyLocal
remoterepository = MyMailserver
# Specifies how often to do a repeated sync (if running without crond)
autorefresh = 10
[Repository MyLocal]
type = Maildir
localfolders = /home/path/to/your/maildir
# This needs to be specified so offlineimap does not complain during resync
sep = .
nametrans = lambda folder: re.sub('^.', '',
re.sub('^$', '.INBOX', folder))
[Repository MyMailserver]
# Example for a gmail account
type = IMAP
remotehost = your.imap.server.com
remoteuser = yourname
remotepass = yourpassword
remoteport = 143
# You need to configure some CA certificates
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
# Translate your INBOX to be the root directory.
# All other directories need a dot before the actual name.
nametrans = lambda folder: re.sub('^.INBOX$', '',
re.sub('^', '.', folder))
如果您正在使用 Gmail,您可能需要添加 额外的翻译[死链 2023-04-23—HTTP 404]。
对于远程邮件服务器存储库
nametrans = lambda folder: re.sub('^.INBOX$', '',
re.sub('^', '.',
re.sub('\.', '_2E',
re.sub('^\[Gmail\].Drafts$', 'Drafts',
re.sub('^\[Gmail\].Sent Mail$', 'Sent', folder)))))
对于本地存储库
nametrans = lambda folder: re.sub('^Sent$', '[Gmail].Sent Mail',
re.sub('^Drafts$', '[Gmail].Drafts',
re.sub('_2E', '.',
re.sub('^.', '',
re.sub('^$', '.INBOX', folder)))))
其他 nametrans 配置的示例(包括 Courier IMAP 服务器的示例)可以在 https://www.offlineimap.org/doc/nametrans.html 找到。
~/.offlineimaprc 文件中任何数量缩进的行都将被解释为前一行的延续。请务必仅在希望出现此行为时才缩进行(例如,在上文 lambda 表达式中的 re.sub 调用中)。您可能还对 在后台运行 offlineimap 感兴趣。
Evolution 的 maildir 的 OfflineIMAP 设置
请参阅 GNOME 帮助中的 Maildir 格式邮件目录账户设置[死链 2024-12-15—HTTP 404]。如果您使用的是 #OfflineIMAP 设置 中的 ~/.offlineimaprc 文件的变体,请在“编辑 > 首选项 > 邮件账户 > 编辑 > 接收电子邮件”中将“邮件目录”路径设置为“根”文件夹。您也可以选择在“接收选项”中更频繁地“检查新邮件”(例如每分钟检查一次,而不是每 60 分钟一次),因为此过程只会检查您的本地副本,而不会检查服务器端副本。
Gmail 设置
请参阅 GNOME 帮助中的 通过 Evolution 访问 Gmail IMAP[死链 2024-12-15—HTTP 404] 或 通过 Evolution 访问 Gmail POP 账户[死链 2024-12-15—HTTP 404]。您还可以参考 Gmail 帮助中的 通过其他电子邮件平台检查 Gmail(针对 IMAP)或 使用 POP 在其他电子邮件客户端阅读 Gmail 邮件,以在 Evolution 邮件配置助手中的“接收邮件”和/或“发送邮件”下手动填写以下字段/复选框。
- 服务器类型
- 服务器和端口
- 服务器需要身份验证
- 用户名
- 加密方法
在“接收电子邮件”下的“身份验证”中,应从下拉菜单中选择OAuth2 (Google)。
- 如果您在“身份”部分勾选了根据输入的电子邮件地址查找邮件服务器详细信息,助手将自动为您配置通过 Gmail 接收/发送邮件的设置。请注意,助手在接收邮件时始终默认为 IMAP。
- 如果您使用 GNOME,则可以通过“设置 > 在线账户”添加 Google 账户。
Gmail 日历
您可以通过两种方法在 Evolution 中使用 Gmail 日历(不包括 GNOME Online Accounts,如 #Gmail 设置 中所述)。
使用 WebDAV 日历
请按照 Google 日历帮助 中“获取您的日历(仅查看)”下的步骤,获取您所需日历的“iCal 格式的秘密地址”。然后按照 GNOME 帮助中的 使用 WebDAV 日历[死链 2024-12-15—HTTP 404] 下的步骤操作。在URL 字段中使用之前获取的秘密地址。
使用 Google 日历
请按照 GNOME 帮助中的 使用 Google 日历[死链 2024-12-15—HTTP 404] 下的步骤操作。如果出现提示,您可能需要授予 GNOME Evolution 访问您的 Google 账户的权限。
Google 联系人
与 #Gmail 日历 类似,您也可以在 Evolution 中同步您的 Google 联系人。有关更多信息,请参阅 GNOME 帮助中的 使用 Google 地址簿。
Microsoft Exchange 和 Office 365
如果您的电子邮件是本地托管在 Microsoft Exchange Server 上,或者云托管在 Office 365 上,您可以使用 IMAP/POP 和 SMTP 访问您的电子邮件。但是,一些附加功能,如访问 Outlook 日历和联系人管理,只有在您使用 Microsoft 的专有 Exchange ActiveSync (EAS) 协议连接到 Microsoft Exchange Server 或 Office 365 服务器时才能使用。
有两种方法可以在 Evolution 中添加/管理 Microsoft Exchange 账户,但两种方法都需要 Evolution EWS。
使用 GNOME Online Accounts
如果尚未安装 gnome-online-accounts 包,请安装它。然后,在 GNOME 设置中选择在线账户,并添加一个新的 Microsoft Exchange 账户,使用以下值:
| 电子邮件 | 您的电子邮件地址(例如:your.name@example.com) |
|---|---|
| 密码 | 您的电子邮件账户密码或来自 https://aka.ms/mfasetup 的应用密码 |
| 用户名 | 您的电子邮件地址(再次) |
| 服务器 | outlook.office365.com |
单击连接后,您的 Exchange 账户应与其他在线账户一起列出。选择您要同步的内容(默认启用所有功能)。
- 如果您的电子邮件地址使用自定义域,在账户配置时,您仍然需要为服务器字段使用 outlook.office365.com。
- 启用 2FA 将阻止连接到 Exchange 服务器。
不使用 GNOME Online Accounts
请参阅 https://wiki.gnome.org/Apps/Evolution/EWS/OAuth2;特别是,对于免费账户用户,请参阅引言和“在 Evolution 中配置账户”。换句话说,免费账户用户不需要关心应用程序/租户 ID,因为他们无法使用 OAuth2。
您的组织可能不允许访问 GNOME Evolution (EWS) 应用程序。一种可能的解决方法(而不是请求管理员访问权限)是在 Evolution 邮件配置助手的“接收电子邮件”部分的身份验证下拉菜单中选择基本而不是OAuth2 (Office365)。免费账户用户也可以选择基本,这是“创建应用程序专用密码”的替代方法。
在 GNOME 之外使用 Evolution
Evolution 依赖 GNOME Keyring 来存储账户密码,因此要在 GNOME 之外使用 Evolution,请参阅 GNOME/Keyring#使用 keyring 并确保存在一个名为 login 的密码 keyring。
拼写检查
请参阅 GNOME 帮助中的 拼写检查[死链 2024-12-15—HTTP 404]。Evolution 通过 gspell 使用 Enchant,因此您可以使用 Hunspell 以外的检查器来方便拼写检查。
技巧与提示
更改加密套件设置
可以更改用于保护与服务器连接的宣传加密套件。Evolution 不提供更改所用加密套件设置的开关。但是,由于 Evolution 使用 GnuTLS,因此可以使用环境变量更改设置。
更改这些设置的一种方法是将 /usr/share/applications/org.gnome.Evolution.desktop 文件复制到 ~/.local/share/applications/,并在复制的 .desktop 文件中设置适当的环境变量。例如,进行以下更改以避免使用带有 NIST/NSA 曲线的 ECC 加密套件:
~/.local/share/applications/org.gnome.Evolution.desktop
...
Exec=env G_TLS_GNUTLS_PRIORITY=${G_TLS_GNUTLS_PRIORITY:-NORMAL:-ECDHE-ECDSA:-ECDHE-RSA} evolution %U
...
另一种实现此目的的方法是使用 包装脚本
#!/bin/sh
export G_TLS_GNUTLS_PRIORITY=${G_TLS_GNUTLS_PRIORITY:-NORMAL:%COMPAT:\!VERS-SSL3.0}
exec /usr/bin/evolution
可用的加密套件设置记录在 https://gnutls.org/manual/html_node/Priority-Strings.html。
使用自定义字体
默认情况下,Evolution 只提供少量内置字体用于撰写邮件。但是,您可以设置其他字体作为编写 HTML 邮件时的“默认”选项。这可以通过在 ~/.local/share/evolution/webkit-editor-plugins/body-font.js 中创建一个 WebKit 编辑器插件来完成。以下是一个使用 Microsoft Calibri 字体的示例:
'use strict';
var localhostBodyFontPlugin = {
name : "localhostBodyFontPlugin",
setup : function(doc) {
if (doc.body) {
doc.body.setAttribute("style", "font-family: Calibri,sans-serif; font-size: 11.0pt;")
}
}
};
EvoEditor.RegisterPlugin(localhostBodyFontPlugin);