Click here to Skip to main content
15,886,422 members
Articles / Programming Languages / C#
Article

Digitally Signing Emails

Rate me:
Please Sign up or sign in to vote.
1.00/5 (1 vote)
29 Mar 2008CPOL1 min read 29K   427   15   2
Digitally signing Emails using CAPICOM and CDO

Introduction

As this is my first time using C#, I thought that migrating something to C# would be the best for me to learn. Well, I happen to pick something that although portions are on the Internet, the full monte was not unless you want to pay money for it (and the code): grr. So putting it all together became the next task.

Background

I searched The Code Project first and found a useful CAPICOM class wrapper. Now I just needed to see some C# examples on sending Emails via CDO. Well there was a whole lot of that out there, so I sat down and began putting this all together.

Using the Code

I tried to make it as simple as possible (mainly because I was learning as I did it), but to use it, simply reference the DigSigs.dll in your project and do what I did below (maybe add some tags to the HTMLBody if you use it), compile it and execute it. You could do a lot more with this from a console or GUI and make it much better than it is at this point, so I will leave it to you ... enjoy!

C#
using System;
using System.Collections.Generic;
using System.Text;

namespace DSEMails
{
    class Program
    {
        static void Main(string[] args)
        {
            DigSigs.CDOEmailer email = new DigSigs.CDOEmailer();
            //
            email.To = "email address";
            email.From = "email address";
            email.CC = "email address";
            email.Signature = "name of signature";
            email.Subject = "Digital Signing Test";
            email.TheStore = "My";
            email.SMTPServer = "SMTP Server or IP Address";
            email.Body = "This is the BODY of the message!!";
            email.HTMLBody = "This is the BODY of the message!!";
            //
            email.SMTPPort = 25;           // Default Value
            email.Important = 2;           // Default Value
            email.PlainText = false;       // Default Value
            email.TimeOut = 120;           // Default Value
            email.UseMachineStore = false; // Default Value
            email.Debug = true;            // Default Value
            //
            if (email.SendTo())
            { Console.WriteLine("\nSigned and sent...\n"); }
            else
            { Console.WriteLine("\nError: Failed to send email?\n"); }
        }
    }
}

There are two classes:

  • DigSigs.CAPIWrap() which does all the signing
  • DigSigs.CDOEmailer() that is used to send the Emails

Other CodeProject Sources

As I mentioned earlier, I had help from a member of CodeProject because he had written an article about CAPICOM called CAPICOM class wrapper. Although I made a few modifications, this saved me a whole lot of time and I thank him for that!

History

  • 3/28/2008 - Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Product Manager
Germany Germany
I have been programming (as a hobby) for 20+ years (Unix C, Scripting, VB, C/C++, C#). I am getting too old to talk about it and been in the Security line of work (both Military/Civilian) for 25+ years.

Comments and Discussions

 
QuestionAttachments Pin
fishmong3r30-Sep-14 22:46
fishmong3r30-Sep-14 22:46 
GeneralError Pin
Azeem Yaseen9-Apr-09 20:43
Azeem Yaseen9-Apr-09 20:43 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.