javax.mail.Authenticator 使用 base 64 编码

javax.mail.Authenticator with base 64 Encoding

我有一台服务器要求 ID 和密码必须以 Base64 编码。意思不是 Username 你必须先将它编码成 Base64,然后将编码后的字符串输入。

然后在我的 Java 客户端中我有一个 javax.mail.Authenticator。我手动将 ID 和密码编码为 base64,将它们保存为字符串并使用这些字符串初始化 Authenticator。但是再三检查,ID和密码都不对

在这种情况下可能有什么问题?

编辑:另一个问题是关于 body 部分,这里是关于 Authenticator

使用java.util.Base64。编码和解码如下:

String s = "...full Unicode...";
s = Base64.getEncoder().encodeToString(s.getBytes(StandardCharsets.UTF_8));
s = new String(Base64.getDecoder().decode(s), StandardCharsets.UTF_8);

有一些可能的调整,比如最后没有填充,替代 URL 安全的 Base64 等等。

我的问题的答案是邮件服务器中的 openssl 需要 Base64 编码,而当我通过 java 客户端连接时,它的 UTF-8。