달짱달짱

[CSmtp] smtp로 email 보내기 구현 본문

C,C++

[CSmtp] smtp로 email 보내기 구현

달콩쨩 2020. 2. 3. 17:34

1. SMTP 소스 다운로드 

https://www.codeproject.com/Articles/98355/SMTP-Client-with-SSL-TLS

 

SMTP Client with SSL/TLS

C++ SMTP client, support SSL and TLS encrypted connection to SMTP server

www.codeproject.com

2. Csmtp.sln 파일을 열어 모두 로드 

 

3. Openssl 다운로드 및 stmp 의 openssl 을 최신버전으로 변경

https://m.blog.naver.com/PostView.nhn?blogId=ssabro_k&logNo=220761231627&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

윈도우 용 OpenSSL 라이브러리 사용하기(feat. Visual Studio 2015)

1. 들어가는 말 본 포스트에서는 Visual Studio 2015환경에서 윈도우 용 OpenSSL 라이브러리를 사용...

blog.naver.com

4. .lib 파일을 Openssl 최신버전에 있는 정상 작동 되는 것으로 변경 (ssleay.lib , libeay.lib)

 

5. 64비트로 변경하려면, 해당 lib의 64비트 버전 다운로드 

 

6. 해당 경로 추가 

 

7. main.cpp 수정 

#include "CSmtp.h"
#include <iostream>

int main()
{
    bool bError = false;

    try
    {
        CSmtp mail;

        mail.SetSMTPServer("smtp.domain.com",25); // smtp 서버
        mail.SetLogin("***"); // 보내는 사람의 login 할 아이디 
        mail.SetPassword("***"); // 보내는 사람의 login password
        
        mail.SetSenderName("User"); // 보내는 사람 이름
        mail.SetSenderMail("user@domain.com"); // 보내는 사람 이메일에 표시할 이메일
        mail.SetReplyTo("user@domain.com"); // 답장 받을 이메일 
        mail.SetSubject("The message"); // 메일의 제목 
        mail.AddRecipient("friend@domain2.com"); // 받는 사람 이메일 (여러명 추가가능)
        
        mail.SetXPriority(XPRIORITY_NORMAL);
        mail.SetXMailer("The Bat! (v3.02) Professional");
        
        // 메일 텍스트 //
        mail.AddMsgLine("Hello,"); 
        mail.AddMsgLine("");
        mail.AddMsgLine("How are you today?");
        mail.AddMsgLine("");
        mail.AddMsgLine("Regards");
        mail.AddMsgLine("--");
        mail.AddMsgLine("User");
        // 메일 파일 첨부 //
        mail.AddAttachment("c:\\test.exe");
        mail.AddAttachment("c:\\test2.jpg");
    
        mail.Send();
    }
    catch(ECSmtp e)
    {
        std::cout << "Error: " << e.GetErrorText().c_str() << ".\n";
        bError = true;
    }

    if(!bError) // 메일이 정상적으로 보내졌을 때
    {
        std::cout << "Mail was send successfully.\n";
        return 0;
    }
    else
        return 1;
}

 

 

※ 참고 ※

https://github.com/cro1002/croSmtp/tree/forUTF8

 

cro1002/croSmtp

smtp를 이용한 메일전송. Contribute to cro1002/croSmtp development by creating an account on GitHub.

github.com

 

♣ smtp로 email을 성공적으로 보내기 위해서 base64, CSmtp, md5 의 .cpp 과 .h 가 필요하다. 

'C,C++' 카테고리의 다른 글

[map, vector] map 의 value 로 vector 사용하기  (0) 2019.11.28