본문 바로가기

프로그래밍/ASP.NET/C#

asp.net 메일 보내기, SMTP 서비스

2008년 9월 9일 포스팅..


==========================================


사이트를 운영 하면서 공지사항을 보낸다던가.. 혹은 비밀 번호를 잊었을 때 새로 비번을 생성해서 보낸 다던가 ..(클릭) 하는 경우 써먹을 수 있는 메일 발송 코딩..

분명. 아래와 같은 코드로 테스트를 해서 무사히 잘 동작 하는 것을 보았다.

 

using System.Web.Mail;

 

 protected void btnInitPass_Click(object sender, ImageClickEventArgs e)
    { 

       string from = "보내는 사람 이 메일";

       string to = "받는 사람 이 메일";       
       string subject = "이 메일 제목";
       string body = "이메일 내용";
       SmtpMail.Send(from, to, subject, body);

 

       Response.Write(ckCom.MsgPageClose("이메일을 발송 하였습니다."));
       Response.End();

     }

 

그런데!!! 그런데!!!

새로 VS 2005.NET PROFESSIONAL 버전을 깐 뒤로 안된다..

라고 말을 하니까 좀 알겠지만.. 사실 첨에 안될때는 이유도 몰랐다..

분명 지난 주에는 잘 되었는데... 갑자기 안된다.

소스 수정한게 없는데...=+=;

포멧한번 하고 모든걸 새로 시작 했을 뿐인데..-_-;;

뭐 암튼.. 이유를 몰랐다.

친절하게도 smtp 네임스페이스는 사용할 수 없다는 경고 메세지도 나왔지만.. 지난 주에는 되었지 않느냐고 따지면서(누구에게!!) 시스템 설정에 관한 생각만 했었다..

 

그러다 주변에 도움을 구한 결과 vs2003 버전 이후로 System.Web.Mail <-- 요거는 사용하지 않는다는 말을 들었다.

그럼 왜 지난주엔 된거지?? 분면 지난주에도 내가 사용하던 툴은 vs2005 인데!!

물론 쪼~~금 다르다..

지난번건 팀에디션이고..이번건 프로페셔널..-_-;

그게 뭐 어쨌다고!!

뭐 암튼..

경고메세지에서 친절히 알려 준데로 새로운 네임스페이스를 사용하기로 했다.

 

using System.Net;
using System.Net.Mail;
using System.Net.Mime;

 

 protected void btnInitPass_Click(object sender, ImageClickEventArgs e)
    {

        MailMessage mail = new MailMessage();    
        mail.From = new MailAddress("보내는사람"); 
        mail.To.Add(new MailAddress("받는사람"));
        mail.Subject = "이 메일 제목";
        mail.Body = "이 메일 내용";

        SmtpClient client = new SmtpClient();  // SmtpClient 생성
        client.Host = "xxx.xxx.xxx.xxx";          //Smtp서버는 IP 또는 머신네임으로 할당
        client.Send(mail);

        Response.Write(ckCom.MsgPageClose("이메일을 발송 하였습니다."));
        Response.End();

    }

 

위의 새롭게 작성한 코드..물론 잘 된다..만..(길어졌다!!)

그리고 iis 에서 smtp 속성의 릴레이도 잡아줘야 한다.. (귀찮다!)

 

그래도 보다 안정적이고 정확도가 높다고 하는군.. (그딴건 모른다..)

 

어쩃건 위 코드에서 보내는 사람, 받는 사람, 그리고 내용 과 제목을 DB에 연결해 주기만 하면  우리가 흔히 쓰는 '이메일 문의' '이메일로 비밀번호 받기' 등이 가능하다.




'프로그래밍 > ASP.NET/C#' 카테고리의 다른 글

IE7.0 에서 새창열고 부모창 닫기  (0) 2014.07.15
랜덤비번 생성하기..  (1) 2014.07.15
C# 의 정수 형식들  (0) 2014.07.15