별도의 백그라운드 스레드에서 시작하더라도 asp.net 웹 페이지를 보내지 않는 것이 좋습니다. 나는 당신이 send의 중간에 당신의 프로세스를 재활용하는 서버의 위험을 감수해야한다고 생각할 것이다. 전자 메일을 보내려면 일종의 별도 서비스 나 응용 프로그램을 작성해야합니다.
가장 간단한 옵션은 빠르고 더러운 콘솔 또는 Windows 양식 응용 프로그램을 만드는 것입니다.
다른 포스터와 마찬가지로 로깅도 중요합니다. 실패한 경우 발송 된 내용과 중단 된 부분을 정확히 알고 싶어하므로 다시 시작할 때 다시 작업 한 모든 사람에게 우편으로 보내지 마십시오. 전송을위한 시작 지점을 입력 할 수 있기를 원하므로 번호 이메일 # 5000에서 다시 시작해야 할 수 있습니다.
System.Net.Mail 네임 스페이스의 클래스는 메일 보내기에 잘 작동합니다.
가장 큰 문제 중 하나는 너무 많은 이메일을 보낼 수있는 이메일 호스트를 찾는 것입니다. 대부분의 이메일 호스트는 제한 사항이 있으며 서버 조건에 따라 변경되는 경우가 있으므로 서버가 과도하게 사용되는 경우 전자 메일 제한이 더 엄격 해지고 시간당 500 개의 이메일 만 설정할 수 있습니다.
약 20000 명의 사람들에게 개별 전자 메일로 발송되는 뉴스 레터가 있으며 전자 메일 호스트에서 작동 할 때까지 전자 메일 간의 지연으로 재생해야했습니다. 이메일 사이에 1.2 초가 걸리므로 좋은 출발점이 될 수 있습니다.
전자 메일 호스트가 대량 메일 발송을 전문으로한다고 생각하지만 문제가되지 않을 수도 있습니다.
또한 자신의 이메일을 호스팅하는 경우 문제가되지 않을 수도 있습니다. 그리고 자신의 메일을 호스트하는 경우 픽업 디렉토리에 메일을 드롭 할 수있는 옵션이 있습니다. 원하는 모든 것을 빠르게 버릴 수 있으며 전자 메일 서비스가 자신의 페이스대로이를 선택할 수 있습니다.
편집 : 여기에
<system.net>
<mailSettings>
<smtp from="[email protected]" deliveryMethod="SpecifiedPickupDirectory" >
<specifiedPickupDirectory pickupDirectoryLocation="Z:\Path\To\Pickup"/>
</smtp>
</mailSettings>
</system.net>
안녕하세요. 답변 해 주셔서 감사합니다. 우리는 우리 자신의 Exchange 서버가 있습니다. 메일을 픽업 디렉토리에 드롭 할 수있는 방법이 궁금합니다. –
설정 파일의 mailsettings 요소에서 전달 방법을 변경할 수 있습니다. 프로그래밍 방식으로도 작업을 수행 할 수 있습니다. http://msdn.microsoft.com/en-us/library/ms164240.aspx –
감사의 글 나는 그것을 줄 것이다 –