如何(正确)在Java中创建mailto URL(URI)?
鉴于:
String email1 = "simple@example.org";
// legal email address according to wikipedia [1]
String email2 = "\"()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a\"@example.org";
创建 mailto: URI(以 String 对象的形式)的最佳/正确方法是什么?
我试过了:
String uri = new URI("mailto", the_email_address, null).toString();
这是我得到的最接近的,但它没有在电子邮件地址的本地部分编码问号(?),但根据RFC 6068,它应该编码。它在RFC中的示例上也失败,例如“not@me”@example.org 或 unlikely?address@example.com。
PS:有一些有用的信息 应该在加编码 在 mailto: 超链接?
我将其作为解决方案:
import org.apache.http.client.utils.URIBuilder;
// from Apache HttpClient
// maven group: org.apache.httpcomponents artifact: httpclient
String emailURL = new URIBuilder().setScheme("mailto").setPath(the_email_address).toString();