1. 제품
  2.   이메일
  3.   C++
  4.   SimpleMail
 
  

HTML 콘텐츠를 통한 이메일 송수신을 무료 C++ 라이브러리로

현대 인증, MIME 포맷, 첨부 파일, SMTP, HTML 콘텐츠 및 SSL/TLS 암호화를 지원하는 오픈 소스 C++ 이메일 라이브러리.

SimpleMail이란?

현대 C++ 개발 환경에서 이메일 기능을 효율적이고 안전하게 처리하는 것은 알림 시스템부터 사용자 인증에 이르기까지 다양한 애플리케이션에 필수적입니다. 많은 고수준 언어가 풍부한 SMTP 이메일 라이브러리를 제공하는 반면, C++는 전통적으로 가볍고 간단한 솔루션이 부족했습니다. SimpleMail은 QtCore와 QtNetwork 모듈 위에 구축된 C++ 라이브러리로, SSL/TLS 암호화, SMTP 인증, 일반 텍스트 및 HTML 메시지 콘텐츠, 파일 첨부, 다중 수신자(To, Cc, Bcc) 등을 지원하는 MIME 호환 이메일을 SMTP 서버를 통해 전송할 수 있는 간단한 인터페이스를 제공합니다. 온도 센서나 스마트 홈 게이트웨이와 같이 상태를 모니터링하는 장치는 SimpleMail을 사용해 이상 상황 발생 시 사용자에게 알림을 보낼 수 있습니다.

SimpleMail은 최소한의 코드로도 첨부 파일, HTML 콘텐츠 등을 포함한 이메일을 SMTP를 통해 전송할 수 있게 해주는 강력하면서도 경량인 라이브러리입니다. GitHub에서 유지 관리되는 SimpleMail은 사용 편의성, 유연성 및 견고함을 목표로 설계된 Qt 기반 SMTP 클라이언트 라이브러리입니다. 데스크톱 앱이든 C++ 서버 데몬이든, 이 라이브러리는 이메일 전송을 위한 깔끔하고 실용적인 인터페이스를 제공합니다. Cutelyst나 Wt와 같은 프레임워크를 사용할 경우, SimpleMail은 사용자 알림이나 트랜잭션 이메일을 보내기에 자연스러운 선택이 됩니다. SimpleMail은 C++ 개발자가 애플리케이션에 직접 이메일 기능을 통합하고자 할 때 신선한 해결책을 제공합니다. 작은 발자국, 최신 이메일 프로토콜에 대한 강력한 지원, Qt 프레임워크와의 원활한 통합을 통해 많은 C++ 개발자가 기다려 온 바로 그 기능을 제공합니다.

Previous Next

SimpleMail 시작하기

SimpleMail을 설치하는 가장 권장되는 방법은 GitHub를 이용하는 것입니다. 원활한 설치를 위해 아래 명령어를 사용하세요.

GitHub를 통해 SimpleMail 설치

git clone https://github.com/cutelyst/simple-mail.git

C++ API로 HTML 이메일 만들기

오픈 소스 SimpleMail 라이브러리는 일반 텍스트와 HTML 콘텐츠 모두를 포함한 이메일 전송을 지원하여 보다 풍부한 이메일 서식을 구현할 수 있습니다. HTML 본문을 지정해 시각적으로 매력적인 이메일을 만들면서, HTML을 지원하지 않거나 텍스트만 선호하는 사용자를 위해 일반 텍스트 대체본도 제공할 수 있습니다. 라이브러리는 메시지에 HTML 콘텐츠를 포함할 수 있기 때문에 이미지나 사용자 정의 스타일이 적용된 포맷된 이메일을 쉽게 보낼 수 있습니다. 아래 코드 조각은 C++ API를 사용해 인라인 이미지가 포함된 HTML 이메일을 보내는 방법을 보여줍니다.

C++ API를 통해 인라인 이미지가 포함된 HTML 이메일을 보내는 방법

#include 

int main() {
    SimpleMail::Mailer mailer("smtp.gmail.com", 587);
    mailer.setUsername("your-email@gmail.com");
    mailer.setPassword("your-password");

    SimpleMail::Mail mail;
    mail.setSender("your-email@gmail.com");
    mail.addTo("recipient@example.com");
    mail.setSubject("HTML Email with Image");

    // HTML content with an embedded image
    mail.setBody(
        "

Welcome!

" "

This is an HTML email with an inline image:

" "Company Logo", SimpleMail::Mail::BodyType::Html ); // Attach an image and reference it in HTML using CID mail.addAttachment("logo.png", "logo", "image/png"); if (mailer.sendMail(mail)) { std::cout << "HTML email sent successfully!" << std::endl; } else { std::cerr << "Error: " << mailer.lastError() << std::endl; } return 0; }

SMTP 인증 지원

오픈 소스 SimpleMail 라이브러리는 C++ 애플리케이션 내에서 SMTP 인증을 완벽히 지원합니다. 라이브러리는 일반 인증과 로그인 인증 방식을 모두 지원하여 Gmail, Outlook 및 맞춤형 서버를 포함한 대부분의 SMTP 서버와 호환됩니다. 아래 코드는 C++ 개발자가 포트 587에서 STARTTLS를 사용해 SMTP 설정을 손쉽게 구성하는 예시입니다.

C++ 애플리케이션에서 SMTP 설정을 구성하는 방법

SimpleMail::Sender sender;
sender.setHost("smtp.example.com");
sender.setPort(587);
sender.setConnectionType(SimpleMail::Sender::TlsConnection);
sender.setUser("your-email@example.com");
sender.setPassword("your-password");

C++에서 첨부 파일과 함께 이메일 보내기

이메일에 첨부 파일을 추가하는 것은 흔한 요구사항이며, SimpleMail은 이를 매끄럽게 처리합니다. 라이브러리는 몇 줄의 코드만으로 새 이메일을 생성하고 파일을 첨부할 수 있게 해줍니다. 첨부 파일 인코딩 및 적절한 MIME 타입 설정을 자동으로 수행합니다. 개발자는 파일 경로와 선택적으로 사용자 정의 파일명을 지정할 수 있습니다. 아래 예시는 C++ API를 사용해 파일 첨부가 포함된 이메일을 보내는 방법을 보여줍니다.

C++ 라이브러리를 통해 파일 첨부가 포함된 이메일을 보내는 방법

#include 

int main() {
    SimpleMail::Mailer mailer("smtp.example.com", 465);
    mailer.setUsername("user@example.com");
    mailer.setPassword("password");
    mailer.setSsl(true); // Enable SSL for secure connection

    SimpleMail::Mail mail;
    mail.setSender("user@example.com");
    mail.addTo("client@example.com");
    mail.setSubject("Invoice Attached");
    mail.setBody("Please find the attached invoice.");

    // Attach a PDF file
    mail.addAttachment("/path/to/invoice.pdf", "invoice.pdf", "application/pdf");

    if (mailer.sendMail(mail)) {
        std::cout << "Email with attachment sent!" << std::endl;
    } else {
        std::cerr << "Error: " << mailer.lastError() << std::endl;
    }

    return 0;
}

SSL/TLS 지원으로 보안 강화

이메일을 다룰 때 보안은 가장 중요한 요소입니다. SimpleMail 라이브러리는 SSL(보안 소켓 계층) 및 TLS(전송 계층 보안)를 사용해 SMTP 서버와의 보안 연결을 지원합니다. SmtpServer를 구성할 때 ConnectionType을 Ssl 또는 Tls로 지정하면 메일 서버와의 통신이 암호화됩니다. 이를 통해 이메일 내용과 인증 자격 증명이 가로채지는 않도록 보호합니다.

 한국인