티스토리 뷰
728x90
C#. Net 코드를 작성하며 이메일을 전송하는 코드를 메모한다.

WinForm 형식의 프로그램을 작성하는 사례로 위의 그림처럼 발신자의 이메일과 비밀번호, 그리고 발신자의 이메일이 등록되어 있는 SMTP 서버의 정보를 입력받아 지정한 수신자 이메일로 테스트 메일을 전송한다. 간편하게 메일을 전송하려면 코드에 "using System.Net.Mail;"를 포함한다.
var mailMessage = new MailMessage
{
From = new MailAddress(email_send.Text),
Subject = "테스트 메일",
Body = "<h3>테스트 메일입니다</h3></br><p>확인했습니다</p>",
IsBodyHtml = true
};
mailMessage.To.Add(email_recv.Text);
bool send_ok = false;
try
{
// 네이트 smtp.mail.nate.com, 587
// 네이버 smtp.naver.com, 587
using (var smtpClient = new SmtpClient(smtp_addr.Text, Convert.ToInt32(smtp_port.Value.ToString())))
{
smtpClient.Credentials = new System.Net.NetworkCredential(email_send.Text, email_pass.Text);
smtpClient.EnableSsl = true;
smtpClient.Timeout = 1000;
smtpClient.Send(mailMessage);
send_ok = true;
}
}
catch (Exception)
{
send_ok = false;
}
테스트 메일은 HTML 형식으로 작성하고 메일 서버 주소나 포트가 잘못되었거나 사용자 인증이 실패한 경우 등을 대비하여 타임아웃을 밀리초 단위로 지정했다.


위의 그림은 네이트와 네이버 포털을 통해서 메일을 전송한 테스트 결과로 두 포털은 smtp.mail.nate.com과 smtp.naver.com 주소를 각각 사용하고 SMTP 포트는 모두 587을 사용한다.
728x90
'프로그래밍' 카테고리의 다른 글
| 아발로니아 UI에 대한 고찰 (0) | 2025.09.17 |
|---|---|
| C#으로 문자 보내기 (0) | 2025.08.29 |
| C# 배열 확장 및 항목 삭제하기 (0) | 2025.08.29 |
| 윈도우 10에서 프로그램 비정상 종료시 덤프를 남기도록 설정하는 방법 (0) | 2025.08.18 |
| C# 라운드 박스 컨트롤 만들기 (0) | 2025.08.06 |
댓글