2009-08-06 3 views
1

기본 메일 클라이언트 (예 : Outlook에서 새 메일 양식 열기)를 사용하여 '새 메일'보기를 열려고합니다. 내가Java/Windows에서 새 메일 (기본 클라이언트) 만들기

String cmd = "explorer.exe \"mailto:[email protected]?subject="+ 
      subject+"&body="+body+"\""; 
Runtime.getRuntime().exec(cmd); 

갈 때 메일이 나타납니다,하지만 난 문제가 : explorer.exe는 더미 페이지로 인터넷 익스플로러 인스턴스를 제공합니다. 특정 인수가있는 rundll.exe와 같이 실행하기에 더 좋은 응용 프로그램이 있습니까?

C++에서 iexplore를 불러 오지 않고도이 작업을 수행 할 수 있다는 것을 알고 있지만 Java에서 어떻게 작동하는지 모르겠습니다. java.awt.Desktop (자바 6)

Desktop dt = Desktop.getDesktop(); 
dt.mail(); 

답변

2

봅니다 기본 메일 클라이언트 (: 프로토콜 흔한와 관련된 일을) 열립니다. 당신의 시간을 낭비

String subject = ...; 
String body = ...; 
String cmd = "rundll32.exe shell32.dll,ShellExec_RunDLL \"mailto:[email protected]?"+ 
      "subject="+subject+"&body="+body+"\""; 
Runtime.getRuntime().exec(cmd); 

죄송합니다 :시 Rundll.exe에 대한 인터넷 검색을 할 때

+0

본인도 알다시피, 나는 주제와 본문도 원합니다. 나는 첨부 파일을 좋아했을 것이다. 그러나 내가 읽은 것에서 그것은 할 수 없다. –

+1

API가이를 지원합니다. uriMailTo = 새 URI ("mailto", "[email protected]?subject ="+ subject + "& body ="+ body + "\", null); dt.mail (uriMailTo); – RealHowTo

+0

훌륭합니다, 감사합니다! 첨부 파일을 가져 오는 중 일부를 읽었지만 실제로는 발견되지 않았습니다. JDIC (우리는 이제 막 제거했습니다) 및 http://stackoverflow.com/questions/81862/how-do-i-send-an-email-attachment-using-the-designated-client-programmatically-f는 내가 본 것 중에 가장 좋았고, 그들 중 누구도 충분하지 못했다. 더 많은 것을 알면 어떨까요? –

1

나는 답을 발견!

+0

Jonas : 차기 버전의 Windows에서 변경 될 가능성이있는 문서화되지 않은 구현 세부 정보에 의존하지 않고 ShellExecute()를 시도해 보셨습니까? –

+0

래리 : 자바에 대한 생각이 들지 않았습니까? JNI에 관해서는 Java, C 및 빌드 시스템에 걸쳐 50 줄의 코드를 약간 조정해야 할 수도있는 두 줄의 Java 코드를 매우 선호합니다. –

관련 문제