首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何(正确地)在Java中创建mailto URL (URI)?

如何(正确地)在Java中创建mailto URL (URI)?
EN

Stack Overflow用户
提问于 2015-05-09 05:39:50
回答 1查看 4K关注 0票数 17

给定:

代码语言:javascript
复制
String email1 = "simple@example.org";

// legal email address according to wikipedia [1]
String email2 = "\"()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a\"@example.org";

创建mailto: URI (以字符串对象的形式)的最佳/正确方法是什么?

我试过了:

代码语言:javascript
复制
String uri = new URI("mailto", the_email_address, null).toString();

这是我得到的最接近的结果,但它没有编码问号(?)在电子邮件地址的本地部分,但根据RFC 6068,它应该是。它在RFC中的示例中也会失败,比如"not@me"@example.org或unlikely?address@example.com。

1

PS:在Should plus be encoded in mailto: hyperlinks?中有一些有用的信息

我接受这个作为一种解决方案:

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

发布于 2015-05-21 07:43:00

您可能希望使用URI.create(String uri)静态方法来创建mailto uri,而不是使用"new“构造函数。例如,这将返回一个有效的URI (我使用的是jdk 7):

代码语言:javascript
复制
URI.create("mailto:john?doe@foo.bar.com");

我希望它能帮上忙。

干杯。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30133266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档