2013. 3. 27. 11:40

* .Net 4.0 기준입니다 *

 

닷넷에서 이메일을 보내는 것은 쉽습니다.

그냥 System.Net.Mail만 유징 해주면 되죠.

 

 

1.디자인

이메일을 보내기 위한 간단한 인터페이스를 만들어 봅시다.

 

 

기본적인 이메일 UI죠? ㅎㅎ

 

 

2.코드 작성

일단 "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 설정)

 

3.테스트

이제 이메일을 전송해 봅시다.

 

 

 

전송 완료 창이 떳다면 이메일이 정상적으로 전송된 것입니다.

이제 보낸 이메일을 확인해 봅시다. 

 

정상적으로 이메일이 왔습니다.

 

이메일이 전송되지 않는 이유는 엄청 많습니다 ㅡ.-;;;

"전송 완료"메시지 박스를 봤다면 일단 SMTP서버까지는 전송이 되었다는 이야기 입니다.

오류가 난다면 이 참고 하세요.

 

 



 

핫 포스팅
  • 알 수 없는 사용자
    2013.03.27 12:30

    정성들이 쓰신 포스팅 잘보고갑니다^^ 댓글지원해드리고갑니다. 날씨가 좋지만 공기가 차네요 ~감기조심하시고 좋은하루되세요~ㅎㅎ

  • 2013.03.28 11:29 신고

    네. 수고하세요~

  • 질문있습니다.
    2015.04.23 11:49

    안녕하세요. VB.NET으로 메일 보내는 기능을 만들고 있는 중 입니다.
    당근천국님의 글을 보고 너무 많이 도움이 됐습니다!

    한가지 질문이 있어서 글을 남기는데요,
    메일 내용TEXT에다가 줄바꿈으로 글을 쓰거나 탭을 써서 메일을 보내면,
    메일을 받았을때는, 줄바꿈이나 탭을 무시하고 텍스트형태로 쭈욱 이어져서 메일이 오네요.

    메일내용은 memo박스를 이용했고요, 사용자들이 메일 내용text에 쓴 그대로 메일을 전송하려면, 어떻게 해야할까요?
    text로도 해보고, memo로도 해봤는데 안되네요 ㅠㅠ 답변 부탁드릴게요~

  • 2015.04.23 12:08 신고

    일반적으로 이메일은 html을 이용합니다.
    그러니 줄바꿈 문자같은것은 이메일을 전송하기 전에 '<br />'이나 '<p></p>'같은 html을 추가/변환 하는 과정이 필요합니다.
    만약 양쪽이 전용 프로그램(직접 만들어서 약속된 형식을 쓰는 경우)같은 것을 쓰는 것이 아니라면 html로 작업하시면 됩니다.
    만약 별도의 플러그인을 사용중이시라면 플러그인에서 줄바꿈 문자 같은 것을 넘겨주는지 아닌지 확인하셔야 합니다.

  • 안녕하세요
    2016.04.29 00:26

    안녕하세요 당근천국님,

    님의 글을 보고 그대로 사용 하였으나, 메일 전송이 실패 하였는데 혹시 저기 소스를 변경 해야 하는 부분이 있나요?

    그리고 궁금한것은 제가 사용할 smtp의 id 와 pw는 안넣어도 되는건가요?

  • 2016.04.29 02:33 신고

    흠....이게 오래되서 저도 기억이 안나긴 하는데 smtp를 제공하는 회사에서 인증방법에 대한 안내를 확인 하셔야 할듯합니다.
    예전에 제가 쓰던 회사는 인터페이스를 따로 제공해서 ip만 허용하면 됐습니다.