Send Email with Attachment in Visual C++

In previous section, I introduced how to send HTML email. In this section, I will introduce how to add attachment to email in Visual C++.


To send an email with file attachment, we need to use AddAttachment method. This method can attach a file to the email message from local disk or a remote URL.


Remarks: All of samples in this section are based on first section: A simple Visual C++ 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.

[Visual C++ Example - Add attachment from local disk or remote URL]

The following example codes demonstrate how to send email with file attachments.


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

#include "stdafx.h"
#include "easendmailobj.tlh"
using namespace EASendMailObjLib;
int _tmain(int argc, _TCHAR* argv[])
    ::CoInitialize( NULL );
    IMailPtr oSmtp = NULL;
    oSmtp.CreateInstance( "EASendMailObj.Mail");
    oSmtp->LicenseCode = _T("TryIt");

    // Set your sender email address
    oSmtp->FromAddr = _T("");

    // Add recipient email address
    oSmtp->AddRecipientEx( _T(""), 0 );

    // Set email subject
    oSmtp->Subject = _T("HTML email from Visual C++ project with attachment");

    // Set HTML body format
    oSmtp->BodyFormat = 1;

    // Set HTML body text
    oSmtp->BodyText = _T("<font size=5>This is</font> <font color=red><b>a test</b></font>");

    // Add attachment from local disk
    if(oSmtp->AddAttachment( _T("c:\\test.doc")) != 0)
        _tprintf( _T("Failed to add attachment with error: %s\r\n"),
             (const TCHAR*)oSmtp->GetLastErrDescription());
    // Add attachment from remote website
    if(oSmtp->AddAttachment( "" ) != 0 )
        _tprintf( _T("Failed to add attachment with error: %s\r\n"),
             (const TCHAR*)oSmtp->GetLastErrDescription());
    // Your SMTP server address
    oSmtp->ServerAddr = _T("");

    // User and password for ESMTP authentication, if your server doesn't
    // require User authentication, please remove the following codes.
    oSmtp->UserName = _T("");
    oSmtp->Password = _T("testpassword");
    // If your SMTP server requires SSL connection, please add this line
    // oSmtp->SSL_init();
    _tprintf(_T("Start to send HTML email ...\r\n" ));

    if( oSmtp->SendMail() == 0 )
        _tprintf( _T("email was sent successfully!\r\n"));
        _tprintf( _T("failed to send email with the following error: %s\r\n"),
            (const TCHAR*)oSmtp->GetLastErrDescription());
    if( oSmtp != NULL )
    return 0;

Next Section

At next section I will introduce how to add embedded images/pictures to email message.



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