2011-10-30 1 views
0

내 데이터베이스에 연락처가 있습니다. 내 신청서에 내 고객을위한 맞춤 이메일 템플릿을 구축하고 싶습니다. 예를 들어Java를 사용하여 Outlook과의 메일 병합으로 이메일 보내기

: 템플릿 설정이

Dear <<name>>, 

This is to inform you that our <<company name>>, located in <<address>> ... 

Sincerely, 
<<sender>> 

후 그때 내 이메일에 몸으로 사용할 수

내 클라이언트는 회사 이름, 주소 등 사용자 정의 자리를 설정할 수 있습니다. 그런 다음받는 사람을 데이터베이스에서 가져옵니다.

MAIL URI를 만들고 사용자의 기본 전자 메일 클라이언트를 사용하여 열 수있는 java.awt.Desktop 패키지를 알고 있습니다. 문제는 어떻게 편지 병합을 통합 할 수 있습니까? 이 문제에 대한 기존의 도서관이나 해결책을 안내해 주시겠습니까?

+1

AWT app., 명령 행 또는 서블릿에서 할 수있는 것처럼 Swing에서와 같은 방식으로 수행하십시오. 또는 다른 말로하면, [tag : swing] 태그는 &와 관련이 없으며 제거되었습니다. –

답변

0

메일 보내기에 JavaMail 라이브러리를 사용하십시오. "JavaMail 예제"를 검색하면 많은 예제를 찾을 수 있습니다. 다른 예제는 Sending email via Gmail SMTP example입니다. 자리 표시 자에 관해서는 간단히 String.replace 함수를 사용합니다.

+0

String.replace 함수에 대해서도 생각해 봤지만 여러 수신자가 있다면 어떻게해야합니까? 각 이름이 각받는 사람의 이름으로 바뀌도록 보내야합니다. 각 수신자에 대해 사용자의 기본 클라이언트 인스턴스를 사용하여 열 수는 없습니다. BTW는 이메일 클라이언트에서 열어서 Gmail SMTP를 통해 전송할 수없는 전제 조건입니다. – jamesv

+0

@jamesv 여러 명의 수신자가있는 경우 여러 개의 이메일을 보냅니다.이메일 클라이언트에서 메일을 보내려면 메일을 열지 않아도됩니다. 링크 된 JavaMail 예제를 보면 이메일 클라이언트 애플리케이션과 아무 관련이 없습니다. –

+0

안녕하세요, 내 클라이언트가 원하기 때문에 이메일 클라이언트에서 열어 보는 것은 전제 조건입니다. 나는 그에게 가능한 해결책을 말하기 전에 이것에 대한 해결책이 있는지를 알고 싶다. – jamesv

0
  1. 템플릿의 변수 설정 방법을 제어해야합니다. 난 당신이 임의의 문자열을 구문 분석하고 그것에 변수가 있는지 알아낼 수 있다고 생각하지 않습니다. 따라서 사용자가 변수를 추가 할 때 프로그램에서 이해할 수있는 변수를 이메일 본문에 삽입해야합니다. 그게 아니라 생각할 필요는 없지만 내가 그것을 완성을 위해 추가 할 것이라고 생각했습니다.

  2. 전자 메일 본문을 속도 템플릿으로 저장하여 속도 템플릿 언어를 추가 한 변수가 호환되도록 할 수 있습니다. 복잡한 템플리트가 설정되어 있으면 Velocity은 string.replace()보다 쉽습니다. 그것의 간단한 하나 있다면 String.replace() 할 것입니다. http://velocity.apache.org/

  3. 다음으로 Java 프로그램에서 자바 메일 라이브러리를 보내거나 데스크탑 클래스를 사용하여 상자의 기본 전자 메일 클라이언트를 시작하십시오.

편집 :

Outlook을 열고 싶은 경우에 당신이 Desktop.mail() API를 사용해야합니다. 당신은

mailto:[email protected]?SUBJECT=Happy New Year!&BODY=Happy New Year, Duke! 

더 많은 정보를 원하시면 여기를 보라 적절한 URI를 구성하고 Desktop.mail()에 전달하여 아웃룩 이메일 보내기 창에서받는 사람, 참조, 숨은 참조, 제목 및 본문 필드를 미리 채울 수 있습니다 : http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/

여러 수신자의 경우 이메일 주소를 쉼표로 구분해야합니다. 그렇지 않으면 세미콜론으로 시도하십시오. Outlook은 세미콜론을 사용합니다 ..

+0

안녕하세요, 그것은 Outlook 또는 모든 기본 이메일 클라이언트에서 열거 나 그냥 Outlook을 말하는 전제 조건입니다. 문제는 메일에 여러 수신자가있는 경우입니다. 하나의 이메일에서받는 사람의 이름으로 바뀐 모든 "이름"자리 표시자를 어떻게 보낼 수 있습니까? 다른 자리 표시자는 문제가되지 않을 수도 있습니다. – jamesv