Send HTML Email in Managed C++/CLI

In previous section, I introduced how to send email without specified SMTP server. In this section, I will introduce how to compose and send HTML email in Managed C++.

Introduction

If you want to specify the font, color or insert pictures in your email, you should use Html email format instead of Plain text email format.

Note

Remarks: All of samples in this section are based on first section: A simple Managed C++/CLI project. To compile and run the following example codes successfully, please click here to learn how to create the test project and add reference of EASendMail to your project.

[Managed C++/CLI Example - Send HTML email]

The following example codes demonstrate how to send email in HTML body format.

Note

To get the full sample projects, please refer to Samples section.

#include "stdafx.h"

using namespace System;
using namespace EASendMail;

int main(array<System::String ^> ^args)
{
    try
    {
        SmtpMail ^oMail = gcnew SmtpMail("TryIt");
        // Set sender email address, please change it to yours
        oMail->From = "test@emailarchitect.net";
        // Set recipient email address, please change it to yours
        oMail->To = gcnew AddressCollection("support@emailarchitect.net");

        // Set email subject
        oMail->Subject = "test HTML email from Managed C++ project";
        // Set HTML email body
        oMail->HtmlBody = "<font size=5>This is</font> <font color=red><b>a test</b></font>";

        // Your SMTP server address
        SmtpServer ^oServer = gcnew SmtpServer("smtp.emailarchitect.net");

        // User and password for ESMTP authentication.
        oServer->User = "test@emailarchitect.net";
        oServer->Password = "testpassword";

        // Most mordern SMTP servers require SSL/TLS connection now.
        // ConnectTryTLS means if server supports SSL/TLS, SSL/TLS will be used automatically.
        oServer->ConnectType = SmtpConnectType::ConnectTryTLS;

        // If your SMTP server uses 587 port
        // oServer->Port = 587;

        // If your SMTP server requires SSL/TLS connection on 25/587/465 port
        // oServer->Port = 25; // 25 or 587 or 465
        // oServer->ConnectType = SmtpConnectType::ConnectSSLAuto;

        Console::WriteLine("start to send HTML email ...");

        SmtpClient ^oSmtp = gcnew SmtpClient();
        oSmtp->SendMail(oServer, oMail);

        Console::WriteLine("email was sent successfully!");
    }
    catch (Exception ^ep)
    {
        Console::WriteLine("failed to send email with the following error:");
        Console::WriteLine(ep->Message);
    }

    return 0;
}

After you received the email by your email client, the body text is like this:

Managed C++ html email sample

Import Html to email directly

Of course, you don’t have to write the HTML source body text in your application manually. You can build a html file with HTML tools and use ImportHtmlBody method to import the html file directly.

You can also refer to the htmlmail.* samples in EASendMail Installer. Those samples demonstrate how to build a HTML email editor and send HTML email with attachment or embedded images/pictures.

Managed C++ html editor

Next Section

At next section I will introduce how to attach file attachment to email message.

Appendix

Comments

If you have any comments or questions about above example codes, please click here to add your comments.