내 응용 프로그램은 전자 메일 알림을 수신하는 옵션이있는 사용자 등록을 처리하고 주어진 사용자의 실제 템플릿 기반 전자 메일 렌더링을 쉽게 처리 할 수 있습니다. JavaMail은 메일 전송 계층을 제공합니다. 하지만 비즈니스 객체 (예 : 사용자)와 메일 전송간에 응용 프로그램 계층을 어떻게 디자인해야합니까?웹 응용 프로그램의 모든 사용자에게 메일을 보내기위한 프레임 워크 또는 디자인 패턴
단순한 동기식 루프는 사용자를 반복하고 전자 메일을 큐에 넣은 다음 처리하는 간단한 루프입니다. "대기열"은 MTA (메일 서버)로 직접 전송하거나 다른 스레드에서 사용하기 위해 메모리 대기열에 보내는 것을 의미 할 수 있습니다.
그러나 전자 메일의 속도를 줄이고 반송 된 전자 메일 (NDR)을 처리하고 응용 프로그램이 다시 시작될 때 상태를 유지하는 것과 같은 기능도 구현할 계획입니다. 나의 직관은 좋은 디자인이 비즈니스 계층과 메일 전송 계층에서 가능한 한 많이 분리한다는 것입니다. 다른 사람들이 전에이 문제를 해결했는지 궁금했지만, 많은 검색을 한 후에이 문제에 적합한 자바 라이브러리를 찾지 못했습니다. James 또는 목록 서버와 같은 독립 실행 형 메일 앱은 범위가 너무 넓습니다. Spring's MailSender 또는 Commons Email과 같은 패키지는 범위가 너무 작습니다 (기본적으로 JavaMail의 드롭 인 대체품 임). 다른 언어들에 대해서도 나는 적절한 것을 발견하지 못했다.
다른 개발자들이 자신의 응용 프로그램에 대량 우편물을 추가하는 방법에 대해 궁금합니다.
나는 걱정스럽지 않고 대신 타사 API (특히 http://postmarkapp.com/)를 활용했습니다. – Intelekshual
아웃소싱은 많은 메일 관련 문제를 해결할 수 있습니다. 상업용 프로젝트라면 아웃소싱을 강력하게 고려할 것이지만 무료 웹 사이트이고 리소스가 부족합니다. 또한 타사 API를 사용하는 경우에도 메일 전송 및 바운스 처리를 앱에 통합하는 방법에 대한 질문은 여전히 남아 있습니다. –
패턴은 "스팸"이라고 생각합니다 :-) –