2014. 8. 28. 17:33
/*
닷넷의 SmtpClient 클래스를 사용하여 메일을 보내는 방법입니다.
MSDN의 예제는 빠진 부분이 많아서 그걸 사용하면 제대로 되지 않더군요
삽질하다가 구글링으로 알아냈습니다.
 
아래 예제는 구글의 Gmail을 사용하는 것으로 했습니다..
 
Gmail의 주소는 smtp.gmail.com 입니다.
포트번호는 587을 사용합니다.
구글에서는 465도 사용 할수 있다고 하지만 사용하면 연결이 되지 않습니다.
*/
 
 
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.UseDefaultCredentials = false; // 시스템에 설정된 인증 정보를 사용하지 않는다.
client.EnableSsl = true; // SSL을 사용한다.
client.DeliveryMethod = SmtpDeliveryMethod.Network; // 이걸 하지 않으면 Gmail에 인증을 받지 못한다.
client.Credentials = new System.Net.NetworkCredential("구글 아이디", "패스워드");
MailAddress from = new MailAddress(메일발신자E-Mail,"이름", System.Text.Encoding.UTF8);
MailAddress to = new MailAddress(메일수신자E-Mail);
MailMessage message = new MailMessage(from, to);
 
message.Body = "This is a test e-mail message sent by an application. ";
string someArrows = new string(new char[] { '\u2190', '\u2191', '\u2192', '\u2193' });
message.Body += Environment.NewLine + someArrows;
message.BodyEncoding = System.Text.Encoding.UTF8;
message.Subject = "test message 2" + someArrows;
message.SubjectEncoding = System.Text.Encoding.UTF8;
 
try
{
// 동기로 메일을 보낸다.
client.Send(message);
// Clean up.
message.Dispose();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}



하지만 구글SMTP를 이용하여메일을 보내게되면

발신자(MailMessage.From)이 변경되지않고 구글메일로 계속 보내지게됩니다.

이런 현상을 해결하기위해 구글계정에서 설정해줄 수 있습니다.


1. 지메일접속 -> 톱니바퀴모양클릭


2.환경설정클릭


3. 계정및 가져오기클릭 -> 다른이메일주소 추가클릭




4.팝업창에서 답장주소를 다르게 지정.


위와같이 설정하면 해당지메일 계정으로 발신하게되면 지정한 메일로 발신됩니다.

'ASP.NET' 카테고리의 다른 글

Visual Studio 단축키  (0) 2014.09.25
C# 외부IP 획득하기  (0) 2014.04.30
DevExpress Gridview Update,Cancel버튼 숨기기  (0) 2014.03.26
C# 배열 선언,초기화  (0) 2014.03.25
C# 정규표현식  (0) 2014.03.20
Posted by YKYun