2012-01-30 4 views
11

.net 이메일 대기열을 본 사람이 있습니까?.Net SMTP 대기열

나는 보낼 SMTP 서버를 지정하고 문제를보고하고 필요하거나 요청할 경우 전자 메일을 다시 보내고 싶습니다.

이상적으로 나는 오픈 소스를 원합니다.

+1

안녕하세요 Fran - 어떤 해결책을 제공해 주셨습니까? –

답변

1

Checkout System.Net.Mail, http://msdn.microsoft.com/en-us/library/dk1fb84h.aspx. 특히 MailMessage와 SmtpClient를보고 싶습니다.

편집

// Invokes the SendEmail method on another thread. 
// Read MSDN on catching exception on completion and then wait a bit and send again. 
Task.Factory.StartNew(() => SendEmail()); 
+0

고마워, 나는 이메일을 보내는 것에 매우 익숙하다.하지만 나는 다른 서비스에 이메일을 보낼 수 있기를 원한다. 그래서 사용자는 이메일이 전송 될 때까지 기다릴 필요가 없으며, 메인 스레드를 중지하십시오. –

+0

TPL을 사용하여 다른 서버로 보내려면 어떨까요? http://msdn.microsoft.com/en-us/library/dd537609.aspx. 다른 스레드에서 작업 작성에 대한 내 편집을 참조하십시오. –

+0

더 좋아 보이는군요! 고마워요. –

3

Windows에서 .NET을 사용하는 경우는 IIS SMTP 서비스를 사용할 수 있습니다. SmtpClient를 사용하고 배달 방법을 픽업 디렉토리로 설정하십시오. 이 모드에서 SmtpClient는 메일 자체를 배달하는 대신 SMTP 픽업 폴더 (c : \ inetpub \ smtp_root \ pickup과 같은 것)에 쓸 것입니다. 이 폴더는 메시지 큐이며 SMTP 서비스는 배달, 다시 시도 및 NDR 등을 처리합니다. 직접 쓰는 것보다 훨씬 낫습니다.

+3

이것을 수행하는 가장 좋은 방법은 아직 * 아직도입니까? 이 접근법은 IIS6가 서버에 설치되어 있어야하며 최근에는 패치가 나면 SMTP 서비스가 죽습니다. – sirtimbly

관련 문제