Дано:
String email1 = "[email protected]";
// 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, например, "[email protected]" @example.org" или маловероятно[email protected]
[1] Valid_email_addresses examples
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();