2010-07-29 3 views
2

나는 전자 메일 기능을 추가하고 싶은 자바 웹 응용 프로그램을 가지고 있지만이를 수행하는 데 필요한 것이 무엇인지 확신 할 수 없습니다. 특히 나는 내 애플을 할 수 있도록하려면 :웹 응용 프로그램에 전자 메일 기능을 추가하는 데 필요한 것은 무엇입니까?

  1. 것이 확인 이메일을 보내 가입
  2. 에 사용자가 내 응용 프로그램의 도메인 즉 [email protected]
  3. 를 사용하여, 서로 이메일을 보내 허용

내 연구에서 필자는 Courier와 같은 Postfix와 IMAP 서버와 같은 메일 전송 에이전트 (MTA)가 필요할 것으로 보인다. IMAP 서버가 필요하지는 않습니다.

감사합니다.

+1

라우터를 통해 전송 된 정보를 얻을 수있는 기업 인트라넷 사용자뿐만 아니라 일반 사용자가 서비스를 사용하기를 원한다면 http://www.codinghorror.com/blog를 읽어보십시오. /2010/04/so-youd-like-to-send-some-email-through-code.html 실제로 사람들이 해당 이메일을 _get_ 수신하도록하려면. –

+1

@Marc이므로 가능한 경우 기존의 작동중인 SMTP 서버를 사용하는 것이 좋습니다. –

+0

최소한 SMTP 서버가 있어야합니다. [이 답변] (http://stackoverflow.com/questions/3270995/is-smtp-server-required-to-send-mail-through-web-server-by-using-javamail-api/3271584#3271584)도 참조하십시오.). – BalusC

답변

2

는 만들 에 웹 응용 프로그램 내부 코드가 필요하고, SMTP 세계로 이메일을 전달합니다. 일반적으로 JavaMail이이 용도로 사용되며 웹 응용 프로그램에 포함 시키거나 웹 컨테이너가 JNDI를 통해 올바르게 구성된 인스턴스를 제공하도록 (선호) 할 수 있습니다. 이것은 벤더에 따라 다릅니다.

JavaMail에 연결할 SMTP 서버가없는 경우 (Windows 용 Exchange 프로그램 인 경우가 많음) IT 관리자에게 문의하거나 Google Mail 또는 Hotmail 또는 다른 서비스를 사용하십시오 웹 응용 프로그램에서 메일을 보내도 괜찮습니다. Gmail 서버를 SMTP 서버로 사용하는 것은 약간 까다 롭지 만 제대로 설정된 경우 제대로 작동합니다.

는 MX 레코드에 관한와 SMTP 서버 등 등,

오 그레이리스트 않을 경우 재전송 모든 지루한 세부 사항을 처리하고, IMAP은 전달를 얻기위한 것입니다 된대로 SMTP 서버가 필요합니다

메일은 메일이 아닙니다. 너는 필요 없어.

+0

Postfix는 설치/사용하기에 가장 쉬운 오픈 소스 SMTP 서버입니까? 또한 IMAP 서버의 역할에 대해 설명해 주셔서 감사합니다. 필자가 온라인에서 검토 한 몇 가지 예는 IMAP이 이메일 전송 구성 요소 인 것처럼 보였습니다. IMAP은 인터넷 메일 액세스 프로토콜을 의미하기 때문에 혼란 스러웠습니다. – Dan

+0

Postfix는 Ubuntu에서 "선호하는"MTA이므로 모든 설명서에서 이에 대해 언급합니다. "Easy"는 스킬 세트에 달려 있습니다 :) 웹 컨테이너가 실행되는 플랫폼은 리눅스의 어떤 맛이라면 일어나고 실행하는 것은 매우 간단 할 것입니다. –

1

Java 웹 앱인 경우 서버 부분은 서블릿입니다. 클라이언트 양식에서 보낸 전자 메일 메시지가 주어지면 서버는 해당 텍스트를 전자 메일로 보내야합니다.

Java EE 스택에이 작업을 수행하는 코드가 있거나 JavaMail을 구체적으로 다운로드 할 수 있습니다. 이렇게하면 프로그램이 메일 클라이언트로 작동 할 수 있습니다.

MTA는 서블릿에서 메시지를 수신하여 사용자에게 보냅니다. 여태까지는 그런대로 잘됐다.

하지만 사용자에게 우편함과 동일한 우편함이 필요합니다. Postfix, QMail 및 기타는 메일이 클라이언트가 선택하여 (일반적으로) 삭제 될 때까지 단순히 저장되는 기본 "플랫"메일 박스 모델을 제공합니다. POP3를 통해 액세스 할 수 있습니다. IMAP은 더 많은 조직 기능, 즉 중첩 된 사서함의 계층 구조를 지정하고 메일 함을 서로 전송하는 기능을 제공합니다. 당신은 아마도 모든 복잡한 것에 대한 GUI 프론트 엔드를 만들고 싶지 않을 것입니다. 그래서 IMAP 서버가 정말로 필요하지 않다고 생각합니다. 그러나 상대적으로 간단한 POP3 서버를 사용하여 서블릿이 TCP/IP를 통해 사서함에 액세스 할 수 있도록해야합니다. 이것은 대개 "표준"이메일 서버 패키지의 일부입니다.

자신의 도메인을 전세계에 알리려면 DNS 서비스의 MX 레코드에 액세스해야합니다. 즉 인터넷에 연결된 주소에서 하나 또는 두 개의 호스트를 자신의 호스트로 설정해야합니다. 우체국.

마지막으로 많은 문제를 해결하려면 MTA (SMTP 서버)를 오픈 릴레이로 사용할 기회가 없도록주의해야합니다. 즉, 사용자가 일반적으로 외부 세계에 메일을 보낼 수 없어야합니다 (또는 해커 은 웹 인터페이스를 악용하는 방법을 찾아으로 알려야 함). 인터넷 메일이 사용자에게 도달해서는 안됩니다. 가장 중요한 것은 인터넷의 메일을 인터넷의 다른 곳으로 전달할 수있는 방법이 없어야한다는 것입니다. 'net'에 open relay testing service (무료입니다.)을 찾아서 완료했다고 생각하면 구성에 대한 테스트를 실행하십시오.

편집

: Thorbjorn의 대답을 보면

, 당신은 아마 당신의 응용 프로그램을 통해 메일을받은 사용자를 싶지 않아 실현; 그들은 아마 이미 자신의 이메일 제공자와 계정을 가지고있을 것입니다. 이 경우받은 편지함 기능이나 POP3 서버에 대해 걱정할 필요가 없습니다. 당신은 당신의 도메인에서 완전한 이메일 서비스를 제공하는 것을 고려할 수 있습니다. 그러나 그것은 매우 감사 할 일이 아닙니다. 그리고 선택의 여지가 있다면, 그 더러운 일을 Gmail, Yahoo, Hotmail 및 그들의 ilk에 맡기십시오. 당신이 제공하는 서비스가 고객을 만족시킬 수는 없으며 매일 스팸 및 기타 범죄와 싸우게 될 것입니다.

+0

큰 문제는 보안 문제입니다. 이렇게하기 전에 두 번, 세 번 생각하지 마십시오. – BalusC

+0

자신의 SMTP 서버에 대한 간단한 해결책은 가상 우분투 10.04 서버 인스턴스 (가상 PC, 가상 박스, 병렬, 가상 PC 내에서 실행)와 후위 설치 및 구성입니다. –

+0

이 시점에서 필자는 이메일을 보낼 수있는 기능 만 갖춘 앱 사용자를 제공하려고합니다. 나는 전체 전자 메일 서비스를 제공하는 것이 최소한의 추가 혜택 (있는 경우)을 통해 감사 할만한 일임에 동의합니다. 오픈 릴레이 테스트 서비스에 대한 자세한 설명과 헤드 업을 보내 주셔서 감사합니다. 그것은 매우 도움이되었습니다. 나는 릴레이 테스팅에 대해 자세히 살펴볼 것입니다. – Dan