프로그램 자료/ASP.NET

[ASP.NET] Mail 발송에 관한 예제(System.Net.Mail) - 메일 발송

motolies 2014. 1. 24. 12:05

출처 : http://yyman.tistory.com/390


지메일로 보낼 때 혹시나 안된다면, 아래의 사이트에 가서 보안설정을 변경하자.

그리고 아래 붉은 색으로 칠한 부분을 빼보자.

https://www.google.com/settings/security/lesssecureapps






[ASP·NET] Mail 발송에 관한 예제(System.Net.Mail)

ASP·NET. NET Framework 기반으로 형성된 프로그램이므로, .NET 계열(VB·NET, C#. NET, ADO·NET )의 개발환경이 하나의 환경으로 통합되었다고 볼 수 있다.

 

System.Web.Mail Name space로 호출하여 웹 환경에 맞는 Mail 발송을 구현할 수도 있고, System.Net.Mail을 활용하여 웹 환경을 구현할 수도 있다.

 

, 정답이 없다는 것을 의미한다.

 

Java는 아직 접하지 않아서 잘 모르겠으나, Java Framework. NET Framework처럼 사용하는 방법이 유사하다고 하니, 한번 접해봐야겠다.

 

아무튼, 글의 핵심인 Mail 발송에 관해 구현하는 방법에 대해 연구해보고자 한다.

GMAIL (SMTP)서버를 활용한 예제이다.

 

 

private void btnSending_Click(object sender, EventArgs e)

{

    try

    {

        /*

        * 2015/05/08 추가

        * 구글에서 보안이 취약한 앱의 로그인을 강제로 막은 정책이 있어서

        * smtp 오류가 나면, 본인의 Gmail 로그인을 해서

        * https://www.google.com/settings/security/lesssecureapps

        * 위의 사이트로 들어 보안에 취약한 앱의 로그인을 허용으로 바꾸면 메일이 간다.

        */

        MailMessage message = new MailMessage();

        message.From = new MailAddress("보내는사람@gmail.com");

        message.To.Add(new MailAddress("받는사람@n네이년.com"));

        message.IsBodyHtml = true;

        message.Subject = "테스트24444";

        message.Body = "야호4444";

        message.SubjectEncoding = System.Text.Encoding.UTF8;

        message.BodyEncoding = System.Text.Encoding.UTF8;

        SmtpClient client = new SmtpClient("smtp.gmail.com", 587);

        client.EnableSsl = true;

        client.UseDefaultCredentials = false;

        client.Credentials = new System.Net.NetworkCredential("본인ID@gmail.com", "비밀번호");

        client.DeliveryMethod = SmtpDeliveryMethod.Network;

        client.Send(message);

    }

    catch (Exception x)

    {

        MessageBox.Show(x.Message);

    }

    MessageBox.Show("성공?!");

}





 

[부가적인 추가 아이디어]

message.Body = File.ReadAllText(Server.MapPath("mail.html"));

이런식으로 변경하면, html 파일을 읽어와서 메일의 양식을 풍성하게 만들 수도 있다.