2012-06-25 3 views
2

현재 SmtpClient를 사용하여 이벤트에 등록하거나 가입 한 사용자에게 이메일을 보냅니다.웹 사이트에서 이메일을 보내는 현명한 방법

등록을 클릭하면 정보가 저장되고 전자 메일 보내기 기능이 호출되지만 너무 긴 전자 메일을 보내는 데는 약간의 시간이 걸립니다.

사용자 정보를 저장하는 방법이 있으며 페이지가로드 된 후 백그라운드에서 vb의 전자 메일 보내기 기능을 호출합니다.

이메일을 보내기 위해 winform을 사용하는 것에 대해 생각했지만 호스팅을 위해 Godaddy를 사용할 때 어디에서 실행합니까?

도움 주셔서 감사합니다.

답변

1

저는 SmtpClient의 SendAsync() 메서드와 Send() 메서드를 사용합니다. 이렇게하면 보내기를 처리 할 새 스레드가 생성되므로 코드가 전자 메일 보내기를지나 계속 진행할 수 있습니다. 이렇게하면 사용자는 대기 시간을 절약 할 수 있습니다. 이런 방식으로 1000 개의 이메일을 보내지 마십시오. 서버가 너무 많은 스레드를 생성하고 성능을 저하시킬 수 있습니다.

Smtp 서비스 "Pickup Directory"옵션을 조사 할 수도 있습니다. SMTP 서버가있는 곳에 파일 쓰기 권한이 있으면 나중에 메일을 보낼 수 있습니다. 당신이 읽는 당신이 사용자에 대한 데이터베이스 레코드에 "비트"필드를 가질 수 이메일의 1000의 걱정 후 쓰기 Windows 서비스가있는 경우 nbushnell

에 의해 제안

1

사용자 정보를 저장할 수 있으며 페이지가로드되면 사용자에게 이메일을 보낼 서버 페이지로 ajax 호출을 할 수 있습니다. 이것의 장점은 비동기 적이므로 사용자가 사이트 탐색에서 다른 작업을 계속하기 위해이 작업이 완료 될 때까지 기다릴 필요가 없다는 것입니다. 그러나 당신이 가진 방법보다 더 빠르지는 않을 것입니다.

로드 된 페이지에서 dom ready 함수를 사용하여 ajax 호출을 이와 같이 만들 수 있습니다.

$(function(){ 

    //Whatever code inside this will be executed only after the DOM finishes loading 
    var userId=45; //replace this with your new userId 
    $.post("Emailer.aspx?userId="+userId,function(data){ 
     alert("Some alert message if you really want!"); 
    }); 

}); 

당신은 쿼리 문자열 매개 변수를 읽고 조치를 할 것입니다 Emailer.aspx라는 페이지가있는 가정 (이메일을 보내).

+0

아쉽게도 아약스 사용법을 모르겠습니다. 함수 또는 예제에 대한 문서가 있습니까? –

+0

@MagedAssad : 업데이트 된 답변을 확인하십시오. jQuery ajax를 사용하십시오. 그것을 사용하려면 jQuery 라이브러리를 페이지에 포함시켜야한다. jQuery ajax를 배우기 위해 인터넷에 튜토리얼이 많이 있습니다. – Shyju

0

내 첫 번째 대답은가 SendAsync이 될 것입니다 비트가 0 인 users 테이블은 전자 메일을 보내고 1로 비트를 설정합니다.

이렇게하면 사용자가 페이지를로드하기를 기다리는 대기 시간이 제거되지만 실제 전자 메일을받는 데는 지연이 발생합니다.

관련 문제