Dato:Come (correttamente) creare mailto URL (URI) in Java?
String email1 = "[email protected]";
// legal email address according to wikipedia [1]
String email2 = "\"()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a\"@example.org";
Qual è il modo migliore/corretto per creare un mailto: URI (sotto forma di un oggetto String)?
ho provato:
String uri = new URI("mailto", the_email_address, null).toString();
Questo è il più vicino che ho ottenuto, ma non codifica il punto interrogativo nella parte locale dell'indirizzo di posta elettronica, ma secondo RFC 6068 dovrebbe (?). Fallisce anche sugli esempi nella RFC, come "[email protected]"@example.org o [email protected].
[1] Valid_email_addresses examples
PS: Ci sono alcune informazioni utili in Should plus be encoded in mailto: hyperlinks?
ho optato per questo come una soluzione:
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();
Ho notato che il tuo esempio sta creando un URI da email1 ma non ha un punto interrogativo, intendevi usare email2? –
Il punto interrogativo è in altro esempio. Quel commento era generale: il metodo usato non funziona se l'indirizzo mail contiene un punto interrogativo. –
@ DavidBalažic non sei in grado di utilizzare il costruttore URI di Apache Commons? o il tuo requisito è diverso? –