이전 기사에서 C++를 사용하여 프로그래밍 방식으로 MSG, EML 및 EMLX를 포함한 MS Outlook 이메일을 만드는 방법을 살펴보았습니다. 이 게시물에서는 C++ 응용 프로그램 내에서 Outlook 전자 메일을 보내는 방법을 배웁니다. 이메일은 런타임에서 생성하거나 .msg, .emlx 등과 같이 이미 저장된 이메일 파일에서 로드할 수 있습니다.
- C++ 이메일 라이브러리
- C++에서 Outlook 이메일 보내기
- C++를 사용하여 대체 보기로 Outlook 이메일 보내기
- C++를 사용하여 대량 이메일 생성 및 보내기
- C++를 사용하여 TNEF로 이메일 보내기
C++ 이메일 라이브러리로 이메일 보내기 - 무료 다운로드
마찬가지로 이전 게시물과 마찬가지로 Aspose.Email for C++를 사용하여 Outlook 이메일을 보냅니다. 다운로드 섹션에서 라이브러리 파일을 다운로드하거나 NuGet을 사용하여 설치할 수 있습니다.
C++를 사용하여 Outlook 이메일 보내기
다음은 Aspose.Email for C++를 사용하여 SMTP 클라이언트로 Outlook 이메일을 보내는 단계입니다.
- Outlook 이메일을 만들거나 MailMessage 클래스를 사용하여 파일에서 로드합니다.
- SmtpClient의 객체를 생성합니다.
- 호스트, 사용자 이름, 암호 및 포트 번호를 설정합니다.
- 보안 옵션을 설정합니다.
- SmtpClient->Send() 메서드를 사용하여 이메일을 보냅니다.
다음 코드 샘플은 C++를 사용하여 Outlook 전자 메일을 보내는 방법을 보여줍니다.
// MailMessage 클래스의 새 인스턴스 만들기
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();
// 메시지 제목, Html 본문 및 보낸 사람 정보 설정
message->set_Subject(u"New message created by Aspose.Email for .NET");
message->set_From(System::MakeObject<MailAddress>(L"from@domain.com", L"Sender Name", false));
message->set_Body(System::String(u"<b>This line is in bold.</b> <br/> <br/>") + u"<font color=blue>This line is in blue color</font>");
message->set_BodyEncoding(System::Text::Encoding::get_ASCII());
// TO 수신자 추가 및 참조 수신자 추가
message->get_To()->Add(System::MakeObject<MailAddress>(L"to1@domain.com", L"Recipient 1", false));
message->get_To()->Add(System::MakeObject<MailAddress>(L"to2@domain.com", L"Recipient 2", false));
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc1@domain.com", L"Recipient 3", false));
// 메일링 호스트 서버, 사용자 이름, 암호, 포트 번호 및 보안 옵션을 지정합니다.
client->set_Host(u"mail.server.com");
client->set_Username(u"username");
client->set_Password(u"password");
client->set_Port(587);
client->set_SecurityOptions(Aspose::Email::Clients::SecurityOptions::SSLExplicit);
try
{
// 이 메시지 보내기
client->Send(message);
}
catch (System::Exception& ex)
{
}
C++ 대체 보기로 Outlook 이메일 보내기
이메일의 대체 보기를 지정하여 다른 형식의 메시지 사본을 생성할 수도 있습니다. 예를 들어 메시지가 HTML 형식인 경우 일반 텍스트가 있는 대체 보기를 만들 수 있습니다. 대체 보기를 생성하려면 MailMessage->getAlternateViews()->Add(AlternateView::CreateAlternateViewFromString(u"text")) 메서드를 사용할 수 있습니다.
다음 코드 샘플은 C++를 사용하여 대체 보기로 이메일을 보내는 방법을 보여줍니다.
// MailMessage 클래스의 인스턴스 생성
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();
// 시작 및 종료 필드
message->set_From(u"sender@sender.com");
message->get_To()->Add(u"receiver@receiver.com");
System::SharedPtr<AlternateView> alternate;
// 문자열에 지정된 내용을 사용하여 이메일 메시지를 보려면 AlternateView의 인스턴스를 만듭니다.
alternate = AlternateView::CreateAlternateViewFromString(u"This is the alternate Text");
// 대체 텍스트 추가
message->get_AlternateViews()->Add(alternate);
// SmtpClient 클래스의 인스턴스 만들기
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();
// 메일링 호스트 서버, 사용자 이름, 메일 비밀번호 및 포트 번호를 지정합니다.
client->set_Host(u"smtp.server.com");
client->set_Username(u"Username");
client->set_Password(u"Password");
client->set_Port(25);
try
{
// 클라이언트 -> 보내기가 이 메시지를 보냅니다.
client->Send(message);
}
catch (System::Exception& ex)
{
System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}
C++를 사용하여 대량 이메일 보내기
한 번에 대량의 이메일을 보내야 하는 경우가 있습니다. 이러한 경우를 위해 C++용 Aspose.Email은 여러 이메일 메시지를 캡슐화하기 위해 MailMessageCollection 클래스를 제공합니다. 다음은 대량의 이메일을 보내는 단계입니다.
- MailMessage 클래스를 사용하여 이메일 메시지를 만들거나 로드합니다.
- MailMessageCollection 클래스의 개체를 만듭니다.
- MailMessageCollection->add() 메서드를 사용하여 컬렉션에 전자 메일 메시지를 추가합니다.
- SmtpClient 클래스의 개체를 만듭니다.
- SmtpClient->Send(MailMessageCollection) 메서드를 사용하여 대량 이메일을 보냅니다.
다음 코드 샘플은 C++를 사용하여 대량의 이메일을 보내는 방법을 보여줍니다.
// SmtpClient를 클라이언트로 생성하고 서버, 포트, 사용자 이름 및 암호 지정
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>(u"mail.server.com", 25, u"Username", u"Password");
// MailMessage 클래스의 인스턴스 생성 및 To, From, Subject 및 Message 지정
System::SharedPtr<MailMessage> message1 = System::MakeObject<MailMessage>(u"msg1@from.com", u"msg1@to.com", u"Subject1", u"message1, how are you?");
System::SharedPtr<MailMessage> message2 = System::MakeObject<MailMessage>(u"msg1@from.com", u"msg2@to.com", u"Subject2", u"message2, how are you?");
System::SharedPtr<MailMessage> message3 = System::MakeObject<MailMessage>(u"msg1@from.com", u"msg3@to.com", u"Subject3", u"message3, how are you?");
// MailMessageCollection 클래스의 인스턴스 만들기
System::SharedPtr<MailMessageCollection> manyMsg = System::MakeObject<MailMessageCollection>();
manyMsg->Add(message1);
manyMsg->Add(message2);
manyMsg->Add(message3);
// 대량 보내기
try
{
// 메시지 보내기
client->Send(manyMsg);
}
catch (System::Exception& ex)
{
System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}
C++ TNEF로 이메일 보내기
MS Outlook은 Transport Neutral Encapsulation Format(TNEF)을 사용하여 RTF 본문이 있는 이메일을 보냅니다. 이 경우 전자 메일에서 서식이 추출되어 TNEF로 인코딩됩니다. 수신 측에서 클라이언트가 TNEF를 지원하는 경우 일반 텍스트와 TNEF 첨부 파일을 조합하여 RTF 전자 메일을 만듭니다. 그렇지 않으면 이메일이 일반 텍스트로 표시됩니다. TNEF로 이메일을 보내려면 SmtpClient->setUseTnef(bool) 메서드를 사용할 수 있습니다.
다음 코드 샘플은 C++를 사용하여 Outlook 전자 메일을 TNEF로 보내는 방법을 보여줍니다.
try
{
// 이메일 파일 경로
System::String emlFileName = u"Message.eml";
// TNEF 이메일
// eml에서 로드
System::SharedPtr<MailMessage> eml1 = MailMessage::Load(emlFileName, System::MakeObject<EmlLoadOptions>());
eml1->set_From(u"somename@gmail.com");
eml1->get_To()->Clear();
eml1->get_To()->Add(System::MakeObject<MailAddress>(u"first.last@test.com"));
eml1->set_Subject(u"With PreserveTnef flag during loading");
eml1->set_Date(System::DateTime::get_Now());
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>(u"smtp.gmail.com", 587, u"somename", u"password");
client->set_SecurityOptions(Aspose::Email::Clients::SecurityOptions::Auto);
client->set_UseTnef(true);
// 이 플래그를 사용하여 TNEF로 전송
client->Send(eml1);
}
catch (System::Exception& ex)
{
// 예외를 잡아라
}
결론
이 게시물에서는 C++를 사용하여 Outlook 이메일을 보내는 방법을 살펴보았습니다. 또한 대량 이메일을 보내는 방법, 대체 보기로 이메일을 보내는 방법 또는 C++ 애플리케이션 내에서 TNEF로 이메일을 보내는 방법을 알게 되었습니다. 문서를 사용하여 Aspose의 C++ 이메일 라이브러리에 대해 자세히 알아볼 수 있습니다.