ASP.NET에서 대량의 이메일을 보내는 가장 좋은 방법은 무엇입니까?
-
09-06-2019 - |
문제
현재 datareader를 통해 루핑 중이며 System.Net.Mail.SmtpClient의 Send() 메서드를 호출하고 있습니다.이 문제는 속도가 느리다는 것입니다.각 이메일을 보내는 데 약 5~10초가 걸립니다(단순히 내 호스트의 문제일 수도 있습니다).다음과 같이 web.config 파일에서 ExecutionTimeout 기본값(기본값은 90초)을 재정의해야 했습니다.
<httpRuntime executionTimeout="3000" />
한 가지 주의사항:저는 공유 호스트에 있으므로 PickupDirectoryFromIis 옵션을 사용하여 보내는 것이 가능하지 않다고 생각합니다(적어도 이 옵션을 켰을 때 오류가 발생했습니다).
해결책
메일을 비동기적으로 보낼 수 있습니다.이렇게 하면 시간 초과로 인해 전송이 중단되지 않아야 합니다.
이 문서는 다음 작업을 시작하는 데 도움이 될 것입니다. C#에서 비동기식으로 이메일 보내기.
여기에는 또 다른 접근 방식이 있습니다. http://www.vikramlakhotia.com/Sending_Email_asynchronously_in_AspNet_20.aspx
물론 사용할 수 있는 상용 클라이언트가 여러 개 있지만 제가 시도하고 추천할 수 있는 유일한 클라이언트는 다음과 같습니다. http://www.aspnetemail.com/
다른 팁
확실히 백그라운드 작업자 프로세스에서 생성하여 비동기식으로 나가도록 합니다.
그런데, 이메일당 5~10초가 나에게는 너무 느린 것 같습니다.내 서버에서는 이메일당 1초도 채 걸리지 않습니다.