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)))))
在 https://www.offlineimap.org/doc/nametrans.html 可以找到其他 nametrans 配置的示例(包括 Courier IMAP 服务器的配置)。
~/.offlineimaprc 文件中任何缩进的行都将被解释为前一行的延续。请注意,**仅**在需要此行为时才缩进行(例如,在上面的 lambda 表达式中的 re.sub 调用)。您可能还对 在后台运行 offlineimap 感兴趣。
Evolution 的 maildir 设置
请参阅 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 帮助中的 使用 WebDev 日历[死链接 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 Server。
不使用 GNOME Online Accounts
请参阅 https://wiki.gnome.org/Apps/Evolution/EWS/OAuth2;特别是对于免费账户用户,请参阅引言和“在 Evolution 中配置账户”。换句话说,免费账户用户不需要担心应用程序/租户 ID,因为他们不能使用 OAuth2。
您的组织可能不允许访问 GNOME Evolution (EWS) 应用程序。一种可能的解决方法(而不是向管理员请求访问权限)是在 Evolution 邮件配置助手的*接收邮件*部分的*身份验证*下拉菜单中选择*Basic*而不是*OAuth2 (Office365)*。免费账户用户也可以选择*Basic*—这是“创建应用程序特定密码”的替代方法。
在 GNOME 之外使用 Evolution
Evolution 依赖 GNOME Keyring 存储账户密码,因此要在 GNOME 之外使用 Evolution,请参阅 GNOME/Keyring#使用密钥环 并确保存在一个名为 login 的密码密钥环。
拼写检查
请参阅 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);