「Linux」- 邮箱客户端

  CREATED BY JENKINSBOT

问题描述

我们最开始使用 Thunderbird 邮件客户端,但是在 GNOME 3 中当收到邮件时却没有任何消息提示,但偶尔又会有提示。鉴于我们没有找到相关的解决方案,因此只能更换邮件客户端,毕竟新邮件通知这个特性对我们来说很重要。

但是,如果更换邮件客户端,我们又要面临新问题:邮件客户端必须支持 rfc2971 定义的 ID 命令,否则无法登录 163 邮箱(imap连接提示Unsafe Login,被阻止的收信行为,参考常见问题记录部分的说明)。腾讯邮箱肯定是不存在该问题的,因为我们能够正常登录企业邮箱,至于其他邮箱服务是否存在该问题我们还不清楚。

该笔记将记录:在 Linux 中,我们使用过的邮件客户端以及常见问题,而子章节将记录与特定客户端相关的设置方法。

解决方案

GNOME Evolution(正在使用)

Apps/Evolution – GNOME Wiki!
Gnome Evolution – General – Mail server doesn’t show up

# 04/27/2021 目前,我们无法登录 163 邮箱,因为当前版本不支持 ID 命令。如果使用 POP 协议,那么侧栏不会显示邮箱帐号(因为 POP 中没有帐号的概念),而邮件都下载到侧栏 On This Computer 目录中。为了解决该问题,我们改用 Outlook 邮箱,或者其他遵循标准且从国内容易登录的国外邮箱。

Thunderbird

Thunderbird — Make Email Easier. — Thunderbird

# 04/29/2021 在 Debian 10 中,Thunderbird 无法正确进行邮件通知,而我们又十分依赖于该功能,因此只能放弃使用 Thunderbird 邮箱。

Mailspring

Foundry376/Mailspring: A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
Mailspring – The best free email app

# 04/29/2021 Star 10.6k

Nylas Mail – the open-source, extensible mail client

nylas/nylas-mail: An extensible desktop mail app built on the modern web. Forks welcome!

# 04/29/2021 Star 24.6k

Kanmail

Oxygem/Kanmail: An email client that functions like a kanban board.

# 04/29/2021 Star 851

常见问题记录

邮箱服务的地址信息

163.com
SMTP, smtp.163.com, 25, 465(ssl)
POP, pop.163.com, 110, 995(ssl)
IMAP, imap.163.com, 143, 993(ssl)

qq.com
SMTP, smtp.qq.com, 465(ssl), 587(ssl)
IMAP, imap.qq.com, 993(ssl)

exmail.qq.com(国内用户)
SMTP, smtp.exmail.qq.com, 465(ssl)
IMAP, imap.exmail.qq.com, 993(ssl)

exmail.qq.com(海外用户)
SMTP, hwsmtp.exmail.qq.com, 465(ssl)
IMAP, hwimap.exmail.qq.com, 993(ssl)

“This phone number cannot be used for verification”

谷歌google帐号注册时,手机号码无法用于进行验证怎么办?

# 03/20/2021 当注册 Google 帐号时,其中某个步骤是填写手机号码,但是会提示 “This phone number cannot be used for verification” 错误。此时,需要通过 Gmail 手机 APP 注册,以绕过该限制。

Failed to select mailbox: SELECT Unsafe Login. Please contact kefu@188.com for help

imap连接提示Unsafe Login,被阻止的收信行为
https://www.ietf.org/rfc/rfc2971.txt%20

问题描述:在添加 163 邮箱时,返回如下错误:

The reported error was “Failed to select mailbox: SELECT Unsafe Login. Please contact kefu@188.com for help”.

原因分析:参考 imap连接提示Unsafe Login,被阻止的收信行为 文档。因为 163 实现 RFC 2971 的 ID 命令,要求在操作过程中使用 ID 命令发送客户端信息。但是又未全部实现,因为 RFC 2971 要求 Servers MUST NOT deny access to or refuse service for a client based on information from the ID command. Clients MUST NOT refuse to response. 不能拒绝响应。说到底就是,未完全实现规范的要求。

解决方法:我们是邮件客户端,除非其支持 ID 命令,否则我们无法使用 Evolution 客户端。因此我们不再使用 163 邮箱,改用 Outlook 邮箱,这样就能继续使用 Evolution 邮箱客户端,以及其他有邮箱客户端。

如果是 Java 代码,能够在代码中发送 ID 命令:

Properties props = new Properties(); 
props.setProperty("mail.store.protocol", "imap"); 
props.setProperty("mail.imap.host", "imap.163.com"); 
props.setProperty("mail.imap.port", "143"); 

HashMap IAM = new HashMap();
//带上IMAP ID信息,由key和value组成,例如name,version,vendor,support-email等。
IAM.put("name","myname");      
IAM.put("version","1.0.0");      
IAM.put("vendor","myclient");      
IAM.put("support-email","testmail@test.com");  
Session session = Session.getInstance(props); 

IMAPStore store = (IMAPStore) session.getStore("imap");
//下方替换对应帐号和授权码
store.connect("testmail@163.com", "password"); 

store.id(IAM);

参考文献

https://www.ietf.org/rfc/rfc2971.txt
Outlook添加网易邮箱
QQ邮箱帮助中心/如何使用IMAP服务?
腾讯企业邮箱帮助中心/如何使用IMAP服务?
1112549 – [FFOS2.0][Woodduck][Email]Can not create 163 email account in Email app

章节列表

「GNOME 3」- Evolution(邮件客户端)
「Thunderbird」- 邮件客户端