더북(TheBook)

A.3.3 마무리

이번 실습으로 간단히 ASP.NET에서 메일을 보내 보았다. 현업에서 많은 양의 메일을 보내야 한다면 자체 윈도 서버를 구축하거나, 유료 SMTP 서비스를 제공 받아서 메일을 보내면 된다.

Note 자체 윈도 서버에서 ASP.NET 웹 폼으로 이메일 전송하기


메일을 전송하는 기능은 ASP.NET만의 고유 기능이 아니라 닷넷에서 만들어지는 모든 프로그램(윈 폼, 웹 폼)에서 공통적으로 사용하는 기능이다. 다만 코드를 그대로 따라 해도 독자의 환경에서 테스트가 되지 않는 경우가 많다. 만약 이러한 현상이 발생하면 SMTP 서비스가 제대로 돌아가는, 실제로 운영되는 서버에서 테스트해보기를 권한다. 특히 대부분의 포털 사이트에 전송되는 메일은 스팸으로 인식되어 전송이 제한될 수 있다. 이러한 경우에는 KISA RBL(https://www.kisarbl.or.kr/)의 화이트 도메인에 해당 서버의 공인 IP주소를 등록해 놓으면 전송에 대한 제약을 덜 받을 수 있다. 다음은 자체 윈도 서버에 SMTP 서비스를 구축하고 이 서버에서 ASP.NET을 호스팅한 후 메일을 보내고자 할 때, Web.config 파일에 <mailSettings> 섹션을 구성하는 예다.

 

▼  Web.config에 SMTP 서비스 관련 설정

<!-- 메일을 보내기 위한 SMTP 설정 -->
  <system.net>
      <mailSettings>
          <smtp deliveryMethod=“Network” from=“youremail@yourdomain.com”>
              <network host=“localhost” defaultCredentials=“true”></network>
              <!--<network host=“smtp.live.com” port=“587”
                    userName=“youremail@yourdomain.com” password=“password” />-->
          </smtp>
      </mailSettings>
  </system.net>

 

위와 같이 설정된 상태에서는 다음과 같은 코드 형태로 간단히 메일을 보낼 수도 있다.


protected void btnSendMail_Click(object sender, EventArgs e) {
  // 가장 간단하게 메일 전송
  System.Net.Mail.SmtpClient objMail =
      new System.Net.Mail.SmtpClient();
  objMail.Send(
      “youremail@yourdomain.com”     // 보내는 이
      , “youremail@yourdomain.com”   // 받는 이
      , “메일 보내기 테스트”          // 제목
      , “안녕하세요…”                // 내용
  );
}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.