ivan
  • ivan
  • 100% (Exalted)
  • Administration Topic Starter
14 years ago
Managed C++/CLI Example

// The following example codes demonstrate signing email message with digital signature - S/MIME
// To get full sample projects, please download and install EASendMail on your machine.
// To run it correctly, please change SMTP server, user, password, sender, recipient value to yours


#include "stdafx.h" 

using namespace System; 
using namespace EASendMail; 

int main(array<System::String ^> ^args) 
{ 
    SmtpMail ^oMail = gcnew SmtpMail("TryIt"); 
    SmtpClient ^oSmtp = gcnew SmtpClient(); 

    // 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 = "support@emailarchitect.net"; 

    // Set email subject
    oMail->Subject = "test email from Managed C++ project with digital signature"; 

    // Set email body
    oMail->TextBody = "this is a test email sent from Managed C++ project with digital signature"; 

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

    // User and password for ESMTP authentication, if your server doesn't require
    // User authentication, please remove the following codes.
    oServer->User = "test@emailarchitect.net"; 
    oServer->Password = "testpassword"; 

    try 
    { 
        // Find certificate by email adddress in My Personal Store.
        // Once the certificate is loaded to From, the email content
        // will be signed automatically
        oMail->From->Certificate->FindSubject(oMail->From->Address, 
            Certificate::CertificateStoreLocation::CERT_SYSTEM_STORE_CURRENT_USER, 
            "My"); 
    } 
    catch (Exception ^exp) 
    { 
        Console::WriteLine("No sign certificate found for <" + 
            oMail->From->Address + ">:" + exp->Message); 
    } 

    // If your smtp server requires SSL/TLS connection, please add this line
    // oServer->ConnectType = SmtpConnectType::ConnectSSLAuto;

    try 
    { 
        Console::WriteLine("start to send email with digital signature..."); 
        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; 
} 

Click here to read original topic - full version ... 

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

EXPLORE TUTORIALS

© All Rights Reserved, AIFEI Software Limited & AdminSystem Software Limited.