# How to use the Cdosys.dll library to send an e-mail with attachments

## SUMMARY

This article describes how to use the Collaboration Data Objects (CDO) for Windows 2000 library (Cdosys.dll) to send an e-mail message with attachments. You can send text or HTML or a Web page in the body of the e-mail message by using the local SMTP server or by using a smart host server in Microsoft Visual C# .NET.

Note The Cdosys.dll library is also known as CDOSYS.

To use CDOSYS as described in the "Summary" section, follow these steps:
1. Start Microsoft Visual Studio .NET.
2. On the File menu, click New, and then click Project.
3. Under Project Types, click Visual C# Projects, and then click Console Application under Templates. By default, Class1.cs is created.
4. Add a reference to the Microsoft CDO For Windows 2000 Library. To do this, follow these steps:
2. On the COM tab, locate Microsoft CDO For Windows 2000 Library, and then click Select.
3. To accept your selections, click OK in the Add References dialog box.

If you receive a dialog box to generate wrappers for the libraries that you selected, click Yes.
5. In the code window, replace all the code with the following code:
namespace CdoSys
{
using System;
class Class1
{
static void Main(string[] args)
{
try
{
CDO.Message oMsg = new CDO.Message();
CDO.IConfiguration iConfg;

iConfg = oMsg.Configuration;

oFields = iConfg.Fields;

// Set configuration.

//TODO: To send by using the smart host, uncomment the following lines:
//oField.Value = CDO.CdoSendUsing.cdoSendUsingPort;
//oField = oFields["http://schemas.microsoft.com/cdo/configuration/smtpserver"];
//oField.Value = "smarthost";

// TODO: To send by using local SMTP service.
//oField = oFields["http://schemas.microsoft.com/cdo/configuration/sendusing"];
//oField.Value = 1;

oFields.Update();

// Set common properties from message.

//TODO: To send text body, uncomment the following line:
//oMsg.TextBody = "Hello, how are you doing?";

//TODO: To send HTML body, uncomment the following lines:
//String sHtml;
//sHtml = "<HTML>/n" +
//	"<TITLE>Sample GIF</TITLE>/n" +
//	"<BODY><P>/n" +
//	"<h1><Font Color=Green>Inline graphics</Font></h1>/n" +
//	"</BODY>/n" +
//	"</HTML>";
//oMsg.HTMLBody = sHtml;

//TOTO: To send WEb page in an e-mail, uncomment the following lines and make changes in TODO section.
//TODO: Replace with your preferred Web page
//oMsg.CreateMHTMLBody("http://www.microsoft.com",
//	CDO.CdoMHTMLFlags.cdoSuppressNone,
//	"", "");
oMsg.Subject = "Test SMTP";

oMsg.From = "someone@example.com";
oMsg.To = "someone@example.com";
//TODO: Change the path to the file that you want to attach.
oMsg.Send();
}
catch (Exception e)
{
Console.WriteLine("{0} Exception caught.", e);
}
return;
}
}
}
6. Where TODO appears in the code, modify the code as indicated.
7. To build and run the program, press F5.
8. Verify that the e-mail message has been both sent and received.

## REFERENCES

For more information about Microsoft Office development with Visual Studio, see the following Microsoft Developer Network (MSDN) Web site:

http://msdn.microsoft.com/library/en-us/dnoffdev/html/vsofficedev.asp

For additional information about how to use CDOSYS, click the following article numbers to view the articles in the Microsoft Knowledge Base:

310221 How to use the Cdosys.dll library to embed a message in a new message by using Visual C# .NET

310224 How to use the Cdosys.dll library to process mail in the Drop directory by using Visual C# .NET

310225 How to use the Cdosys.dll Library to save a message to a file by using Visual C# .NET

• Microsoft Visual C# .NET (2003)
• Microsoft Visual C# .NET (2002)
• Microsoft Collaboration Data Objects for Windows 2000
• ActiveX Data Objects (ADO) 2.5
• ActiveX Data Objects (ADO) 2.6
• ActiveX Data Objects (ADO) 2.7
• Microsoft Internet Information Services version 6.0
• Microsoft Internet Information Services 5.0
 Last Reviewed: 7/26/2004 (1.0) Keywords: kbcode kbhowto KB310212 kbAudDeveloper