* .Net 4.0 기준입니다 *
닷넷에서 이메일을 보내는 것은 쉽습니다.
그냥 System.Net.Mail만 유징 해주면 되죠.
이메일을 보내기 위한 간단한 인터페이스를 만들어 봅시다.
기본적인 이메일 UI죠? ㅎㅎ
일단 "System.Net.Mail"와 "System.Text"를 유징해줍니다.
using System.Net.Mail; using System.Text;
이제 button1의 클릭이벤트를 다음과 같이 작성합니다.
private void button1_Click(object sender, EventArgs e) { MailMessage mail = new MailMessage(); mail.From = new MailAddress(txtFrom.Text); mail.To.Add(new MailAddress(txtTo.Text)); mail.Subject = txtSubject.Text; mail.Body = txtBody.Text; mail.SubjectEncoding = Encoding.UTF8; mail.BodyEncoding = Encoding.UTF8; SmtpClient client = new SmtpClient("127.0.0.1"); try { client.Send(mail); MessageBox.Show("전송 완료"); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
코드가 너무 간단해서 주석조차 달지 않았습니다 ㅎㅎㅎ
여기서 주의하여야 할 것은
SmtpClient("127.0.0.1");
이 부분에 들어가는 주소는 이메일을 전송해주는 서버인 SMTP 서버의 주소를 넣어야 한다는 것입니다.
SMTP 서버는 직접 구축해도 되고 다른 업체에서 무료로 제공해주는 서버를 이용하셔도 됩니다.
사설 SMTP 서버는 이메일 수신업체에 따라서 수신 자체를 막는 경우도 있기 때문에 이메일이 전송되지 않는다면 확인해 보셔야 합니다.
(참고 : [IIS7] 메일 서버를 만들어 보자 - SMTP 설정)
이제 이메일을 전송해 봅시다.
전송 완료 창이 떳다면 이메일이 정상적으로 전송된 것입니다.
이제 보낸 이메일을 확인해 봅시다.
정상적으로 이메일이 왔습니다.
이메일이 전송되지 않는 이유는 엄청 많습니다 ㅡ.-;;;
"전송 완료"메시지 박스를 봤다면 일단 SMTP서버까지는 전송이 되었다는 이야기 입니다.
오류가 난다면 이 참고 하세요.
안녕하세요. VB.NET으로 메일 보내는 기능을 만들고 있는 중 입니다.
당근천국님의 글을 보고 너무 많이 도움이 됐습니다!
한가지 질문이 있어서 글을 남기는데요,
메일 내용TEXT에다가 줄바꿈으로 글을 쓰거나 탭을 써서 메일을 보내면,
메일을 받았을때는, 줄바꿈이나 탭을 무시하고 텍스트형태로 쭈욱 이어져서 메일이 오네요.
메일내용은 memo박스를 이용했고요, 사용자들이 메일 내용text에 쓴 그대로 메일을 전송하려면, 어떻게 해야할까요?
text로도 해보고, memo로도 해봤는데 안되네요 ㅠㅠ 답변 부탁드릴게요~