簡體   English   中英

Java mailto非法字符冒號?

[英]Java mailto Illegal character colon?

我試圖發送帶有附件的電子郵件,但一直在說:

 Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Illegal character in opaque part at index 64: mailto:recipient@mailserver.com?subject=ThePDFFile&attachment=C:\Users\Rascal\AppData\Local\Temp\FreelancerList-16-12-2014_09-227568200505392670736.doc

Java代碼:

Desktop desktop = Desktop.getDesktop(); 
        String message = "mailto:recipient@mailserver.com?subject=ThePDFFile&attachment=\""+path; 
        URLEncoder.encode(message, "UTF-8");
        URI uri = URI.create(message); 
        desktop.mail(uri);    

應該是冒號吧? 但為什么???

您正在調用URLEncoder.encode ,但是忽略了結果。 我懷疑您正在嘗試實現以下目標:

String encoded = URLEncoder.encode(message, "UTF-8");
URI uri = URI.create(encoded);

...盡管此時您還將在mailto部分之后對冒號進行編碼。 我懷疑您真的想要這樣的東西:

String query = "subject=ThePDFFile&attachment=\""+path;
String prefix = "mailto:recipient@mailserver.com?";
URI uri = URI.create(prefix + URLEncoder.encode(query, "UTF-8"));

甚至只編碼值:

String query = "subject=" + URLEncoder.encode(subject, "UTF-8");
    + "&attachment=" + URLEncoder.encode(path, "UTF-8"));
URI uri = URI.create("mailto:recipient@mailserver.com?" + query);

...或者當然可以從各個不同的部分分別創建URI

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM