출처 : 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 파일을 읽어와서 메일의 양식을 풍성하게 만들 수도 있다.