Language/C#

[C#] NCP OutBound Mailer 를 이용한 메일보내기 라이브러리

Trillion Binary 2023. 2. 7. 09:13
SMALL

2019년 쯤에 ncp 메일보내기 기능을 좀더 쉽게 사용하기 위해 C#코드로 작성해 놓은 라이브러리가 있어서 공유한다. 

C# Mail 보내기 라이브러리를 만들었습니다.

아래는 라이브러리 사용 방법입니다.
 
라이브러리명 : MailHelper
라이브러리 버전 : 1.0
설명 : NCP OutBound Mailer API를 이용한 메일 보내기 라이브러리

 

사용법 
1) 라이브러리 참조 추가 및 namespace 추가
using MailHelper;
 
2) 선언
private static NcpMailer Mailer = null; // 메일 라이브러리
 
3) 변수 셋팅
string accessKey = "##accesskey##"; // 발급받은 accessKey
    string secretKey = "##secretkey##"; // 발급받은 secretKey
    string sendEmail = "##이메##"; // 발신자 이메일
    string senderName = "고객만족팀"; // 발신자 명
    string domain = "https://mail.apigw.ntruss.com"; // API 도메인
    string url = "/api/v1/mails"; // API url
    Mailer = new NcpMailer(accessKey, secretKey, sendEmail, senderName, domain, url); // 변수 셋팅
    Mailer.Success += MailSendSuccess; // 성공시 호출될 함수, 
    Mailer.Fail += MailSendFail; // 실패시 호출될 함수
 
4) 전송
string email = "##이메일##"; // 수신자 이메일
    string subject = "test 한글 되나?"; // 제목
    string body = "TEST BODY ㅋㅋㅋㅋ"; // 내용
    Mailer.Send(email, subject, body); // 전송 함수 호출
 
5) 성공, 실패
// 성공시 호출 되는 함수
private void MailSendSuccess(string email, string subject, string body, string response)
    {
// 성공후 할 작업을 작성 하면 됩니다. 
// ex) 로그 남김
Console.WriteLine(string.Format("email : {0}\r subject : {1}\r body : {2}\r response : {3}", email, subject, body, response));
    }
 
// 실패시 호출되는 함수
    private void MailSendFail(string email, string subject, string body, Exception ex)
    {
// 실패후 할 작업을 작성 하면 됩니다. 
// ex) 로그 남김
        Console.WriteLine(string.Format("email : {0}\r subject : {1}\r body : {2}\r Exception : {3}", email, subject, body, ex.Message));
    }
 
ex)
using MailHelper;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace mailTest
{
   public partial class Form1 : Form
   {
       private static NcpMailer Mailer = null; // 메일 라이브러리
       public Form1()
       {
           InitializeComponent();
// 변수 셋팅
           string accessKey = "##accesskey##";
           string secretKey = "##secretkey##";

 

           string sendEmail = "##메일주소##";
           string senderName = "##보내는 사람##";
           string domain = "https://mail.apigw.ntruss.com";

 

           string url = "/api/v1/mails";
           Mailer = new NcpMailer(accessKey, secretKey, sendEmail, senderName, domain, url);
           Mailer.Success += MailSendSuccess;
           Mailer.Fail += MailSendFail;
       }
// 보내기 버튼 이벤트
       private void button1_Click(object sender, EventArgs e)
       {
           string email = "##이메일##";
           string subject = "test 한글 되나?";
           string body = "TEST BODY ㅋㅋㅋㅋ";
           Mailer.Send(email, subject, body); // 전송
       }
       private void MailSendSuccess(string email, string subject, string body, string response)
       {
           Console.WriteLine(string.Format("email : {0}\r subject : {1}\r body : {2}\r response : {3}", email, subject, body, response));
       }
       private void MailSendFail(string email, string subject, string body, Exception ex)
       {
           Console.WriteLine(string.Format("email : {0}\r subject : {1}\r body : {2}\r Exception : {3}", email, subject, body, ex.Message));
       }
   }
}
 

소스코드

https://github.com/timez-2i/MailHelper

 

GitHub - timez-2i/MailHelper

Contribute to timez-2i/MailHelper development by creating an account on GitHub.

github.com

 

 

 

// 추가

2019년에 HttpWebRequest를 사용하여 API를 호출 하였으나  TLS 버전을 지원 하기 위해 수정이 필요함. 

귀찮니즘이 없어지면 수정할 예정 -_-;;

CRequestUtil 부분만 변경 하면 될듯??

BIG