2011-01-14 5 views
2

내 고객 맞춤형 CRM의 경우 사용자 (기술자)에게 이메일을 통해 표시된 사례의 변경 사항을 알리고 싶습니다.차단없이 일괄 알림 전자 메일 보내기

이것은 로깅 방법 내에서 대/소문자가 변경 될 때마다 사용자와 사례 간 간단한 가입 매핑 테이블과 자동 전자 메일이 전송되도록 보장합니다.

로깅 방법을 고생하지 않고 구독 한 사용자에게 10-100 개의 이메일을 보내려면 어떻게해야합니까? 내 SMTP 서버는 LAN에있는 피어에 있으므로 보내기는 빠르지 만 이상적으로는 외부 대기열 처리에서 처리해야합니다.

나는 10 분마다 모든 미결 이메일을 보냈지 만,이 특정 클라이언트의 경우 시간이 중요시되고 즉각적인 알림 (즉석 이메일 알림)이 유용 할 수 있습니다.

로깅 알림을 사용하지 않고 ASP.NET MVC에서 일괄 알림 전자 메일을 보내려면 어떻게해야합니까?

답변

2

ASP.NET 응용 프로그램에서 전자 메일을 보내는 것이 소중한 서버 리소스를 독점하기 때문에 좋지 않습니다. Windows Service를 설정하여이 작업을 수행하거나 Windows 스케줄러로 실행되도록 예약 할 수있는 콘솔 응용 프로그램을 작성하는 것이 더 좋은 해결책입니다. Quartz.NET은 작업을 예약 할 때 고려해야 할 좋은 해결책입니다.

특정 컨트롤러 동작에서 전자 메일 보내기를 시작하려면 비동기 적으로 호출 할 수있는 별도의 WCF 서비스가 필요할 수도 있습니다.

+0

MSMQ는 어떻습니까? –

+0

@FreshCode, 예 MSMQ는 이러한 종류의 작업에도 매우 유용합니다. –

3

위로 2007 년에 나는 웹 서버가 갑자기 멈추고 503 개의 오류를 보내고 몇 분 후에 다시 돌아 오는 경우를 조사하도록 요청 받았습니다. 긴 이야기를 짧게 자르면 마지막에 서버를 차단하는 전자 메일을 보냈습니다 (잘못된 코드 외에도).

기본적으로 Microsoft의 SMTP 서버는 단일 스레드 서비스으로 구현됩니다. 마지막으로 확인했습니다. 즉, 요청을 처리하는 모든 중요한 ASP.NET 스레드가 긴급하지 않은 전자 메일을 보내기 위해 단일 스레드 모 놀리 식 응용 프로그램에 대기해야합니다. 귀하는 귀하의 웹 사이트와 이메일 전송을 분리시켜야합니다. 모든 사람이하는 일이며 이에 대한 충분한 이유가 있습니다.

전자 메일을 대기열에 기록하고 전자 메일을 읽고 보내는 프로세스가 있어야합니다.