如何使用 Cdosys.dll 库使用 Visual C# 中发送电子邮件带有附件接收邮件

简介:  如何使用 Cdosys.dll 库一封新邮件中嵌入一条消息,使用 Visual C# 本文描述如何在新邮件中嵌入邮件的 Windows 2000 库 (Cdosys.dll) 中使用 Microsoft 协作数据对象 (CDO)。 可以使用 Microsoft Visual C# 执行此操作。 请注意 Cdosys.dll 库也称为是 CDOSYS。 若要用于新邮件中嵌入邮件 CDOS

 如何使用 Cdosys.dll 库一封新邮件中嵌入一条消息,使用 Visual C#

本文描述如何在新邮件中嵌入邮件的 Windows 2000 库 (Cdosys.dll) 中使用 Microsoft 协作数据对象 (CDO)。 可以使用 Microsoft Visual C# 执行此操作。

请注意 Cdosys.dll 库也称为是 CDOSYS。
若要用于新邮件中嵌入邮件 CDOSYS 请按照下列步骤操作:

   1. 启动 Microsoft Visual Studio.NET 或 Microsoft Visual Studio 2005。
   2. 在 文件 菜单上单击 新建 ,然后单击 项目 。
   3. 单击 Visual C# 项目类型 列表中的 控制台应用程序 。

      情况默认,创建 Class 1.cs。

      请注意 在 Microsoft Visual C# 2005 必须在 Visual C# 列表中单击 控制台应用程序 。 情况默认,创建 Program.cs。
   4. 添加一个对 Microsoft CDO Windows 2000 库 的引用。 要这样做,请按下列步骤操作:
         1. 在 项目 菜单上单击 添加引用 。
         2. 在 COM 选项卡上找到 Microsoft CDO Windows 2000 库 ,然后单击 选择 。

            请注意 在 Microsoft Visual C# 2005 没有单击 选择 。
         3. 在 添加引用 对话框中,单击 确定 以接受您的选择。

            如果您收到一条消息在您选择的库生成包装,单击 是 。
   5. 在代码窗口中替换所有代码为以下代码:

      namespace CdoSys
      {
          using System;
          class Class1
          {
              static void Main(string[] args)
              {
                  try
                  {           
                  CDO.DropDirectory iDropDir = new CDO.DropDirectory();
                  CDO.IMessages iMsgs;
                  CDO.IBodyPart iBp;
                  CDO.IMessage iEmbdded;
                  CDO.Message oMsg;
                  CDO.IDataSource iDsrc;

                  // Create a new message.
                  oMsg = new CDO.Message();
                  oMsg.From = "rhaddock@northwindtraders.com";
                  oMsg.To = "rhaddock@northwindtraders.com";
                  oMsg.Subject = "CDOSYS Send mail";
                  oMsg.TextBody = "Hello";
                  iBp = oMsg.BodyPart.AddBodyPart(-1);

                  // Embed the message.
                  iMsgs = iDropDir.GetMessages("C://Inetpub//mailroot//Drop");
                  Console.WriteLine("Messages Count : " + iMsgs.Count.ToString());

                  // Get first message.
                  iEmbdded = iMsgs[1];

                  // Embed the message in oMsg by using BodyPart.
                  iDsrc = iEmbdded.DataSource;
                  iDsrc.SaveToObject(iBp, "IBodyPart");


                  // Send mail.
                  oMsg.Send();

                  iEmbdded = null;
                  oMsg = null;
                  iBp = null;
                  iMsgs = null;
                  iDropDir = null;
                  }
                  catch (Exception e)
                  {
                      Console.WriteLine("{0} Exception caught.", e);
                  }
                  return;
              }
               }
      }

      oMsg.Send() ; iEmbdded = 空值 ; oMsg = 空值 ; iBp = 空值 ; iMsgs = 空值 ; iDropDir = null;} catch (Exception e) {Console.WriteLine ("捕获 {0} 异常",e);} 返回 ;}}}。
   6. 按 F 5 生成并运行该程序。

如何使用 Cdosys.dll 库通过使用 Visual C# 中处理投递目录中的邮件

本 文描述如何使用 for Windows 2000 库 (Cdosys.dll) 使其在邮件上的 Microsoft 协作数据对象 (CDO)。 本文介绍如何对 Microsoft Visual C#.NET 或 Microsoft Visual C# 2005 中的一个邮件操作。 若要操作消息,可以执行以下任何一个操作:

    * 您可以单击 答复 。
    * 您可以单击 全部答复 。
    * 您可以单击 。

请注意 Cdosys.dll 库也称为是 CDOSYS。

若要用于处理一条消息 CDOSYS 请按照下列步骤操作:

   1. 启动 Microsoft Visual Studio.NET 或 Microsoft Visual C# 2005 。
   2. 在 文件 菜单上单击 新建 ,然后单击 项目 。
   3. 单击 Visual C# 项目类型 列表中的 控制台应用程序 。

      请注意 Microsoft Visual C# 2005 中单击 Visual C# 2005 列表中的 控制台应用程序 。

      在 Visual 的 Studio.NET 中默认情况下将创建 Class 1.cs。 在 Visual 的 Studio 2005 中默认情况下被创建 Program.cs。
   4. 添加一个对 Microsoft CDO Windows 2000 库 的引用。

      要这样做,请按下列步骤操作:
         1. 在 项目 菜单上单击 添加引用 。
         2. 在 COM 选项卡上单击 Microsoft CDO Windows 2000 库 ,然后单击 选择 。

            请注意 在 Visual 的 Studio 2005 中没有单击 选择 。
         3. 在 添加引用 对话框中,单击 确定 以接受您的选择。

            如果您收到一条消息在所选库生成包装,单击 是 。
   5. 在代码窗口中替换所有代码为以下代码:

      namespace CdoSys
      {
          using System;
          class Class1
          {
              static void Main(string[] args)
              {
                  try
                  {          
                      CDO.DropDirectory iDropDir = new CDO.DropDirectory();
                      CDO.IMessages iMsgs;
      
                      CDO.IMessage iMsgReply;
                      CDO.IMessage iMsgReplyAll;
                      CDO.IMessage iMsgForward;

                      // Get the messages from the Drop directory.
                      iMsgs = iDropDir.GetMessages("C://Inetpub//mailroot//Drop");
                      Console.WriteLine("Messages Count : " + iMsgs.Count.ToString());

                      foreach (CDO.IMessage iMsg in iMsgs)
                      {
                          Console.WriteLine(iMsgs.get_FileName(iMsg));

                          // Output some common properties of the extracted message.
                          Console.WriteLine("Subject: " + iMsg.Subject);
                          Console.WriteLine("TextBody: " + iMsg.TextBody);
                          Console.WriteLine("datereceived: " + iMsg.Fields["urn:schemas:httpmail:datereceived"].Value);
                          Console.WriteLine("sendername: " + iMsg.Fields["urn:schemas:httpmail:sendername"].Value);
                          Console.WriteLine("senderemail: " + iMsg.Fields["urn:schemas:httpmail:senderemail"].Value);
                          Console.WriteLine("from: " + iMsg.Fields["urn:schemas:httpmail:from"].Value);
                          Console.WriteLine("sender: " + iMsg.Fields["urn:schemas:httpmail:sender"].Value);

                          // Reply.
                          iMsgReply = iMsg.Reply();
               
                          // TODO: Change "rhaddock@northwindtraders.com" to your e-mail address.
                          iMsgReply.From = "rhaddock@northwindtraders.com";
                          iMsgReply.TextBody = "I agree. You can continue." + "/n/n" + iMsgReply.TextBody;
                          iMsgReply.Send();

                          // This is ReplyAll.
                          iMsgReplyAll = iMsg.ReplyAll();

                          // TODO: Change "rhaddock@northwindtraders.com" to your e-mail address.
                          iMsgReplyAll.From = "rhaddock@northwindtraders.com";
                          iMsgReplyAll.TextBody = "I agree. You can continue" + "/n/n" + iMsgReplyAll.TextBody;
                          iMsgReplyAll.Send();

                          // This is Forward.
                          iMsgForward = iMsg.Forward();
                 
                          // TODO: Change "rhaddock@northwindtraders.com" to your e-mail address.
                          iMsgForward.From = "rhaddock@northwindtraders.com";
                          // TODO: Change "Jonathan@northwindtraders.com" to the address that you want to forward to.
                          iMsgForward.To = "Jonathan@northwindtraders.com";
                          iMsgForward.TextBody = "You missed this." + "/n/n" + iMsgForward.TextBody;
                          iMsgForward.Send();
                      }

                      // Clean up memory.
                      iMsgs = null;
                      iMsgReply = null;
                      iMsgReplyAll = null;
                      iMsgForward = null;
                  }
                  catch (Exception e)
                  {
                      Console.WriteLine("{0} Exception caught.", e);
                  }
                  return;
              }
          }
      }

      iMsgs = 空值 ; iMsgReply = 空值 ; iMsgReplyAll = 空值 ; iMsgForward = null;} catch (Exception e) {Console.WriteLine ("捕获 {0} 异常",e);} 返回;}}}。
   6. 其中"TODO:"出现在上面的示例代码修改代码如所示。
   7. 按 F 5 生成并运行该程序。


如何使用 Cdosys.dll 库使用 Visual C# 将邮件保存到文件

警 告  ADO 和 ADO MD 尚未进行完全测试 Microsoft.NET Framework 环境中。它们可能会间歇性的问题导致尤其是在基于服务的应用程序或多线程应用程序中。 本文中讨论的技术只应作为临时措施迁移到 ADO.NET 的过程中。必须进行完整的测试以确保任何兼容性问题后,只能使用这些方法。 由使用 ADO 或 ADO MD 中这种方式引起的任何问题是不受支持。有关详细信息,请参见在以下文章的 Microsoft 知识库文章:
本文介绍如何使用协作数据对象 (CDO) 的 Windows 2000 库 (Cdosys.dll) 将邮件保存到文件在 Microsoft Visual C# 中。

请注意 Cdosys.dll 库也称为是 CDOSYS

"摘要"一节中描述用作 CDOSYS 请按照下列步骤操作:

   1. 启动 Microsoft Visual Studio.NET 或 Microsoft Visual Studio 2005。
   2. 在 文件 菜单上单击 新建 ,然后单击 项目 。
   3. 项目类型 下, 单击 Visual C# 项目 ,然后单击 模板 下的 控制台应用程序 。 情况默认,创建 Class 1.cs。

      请注意 Microsoft Visual C# 2005 中单击 项目类型 下的 Visual C# 。 情况默认,创建 Program.cs。
   4. 添加一个对 Microsoft CDO Windows 2000 库 的引用。 要这样做,请按下列步骤操作:
         1. 在 项目 菜单上单击 添加引用 。
         2. 在 COM 选项卡上找到 Microsoft CDO Windows 2000 库 ,然后单击 选择 。

            请注意 在 Microsoft Visual C# 2005 没有单击 选择 。
         3. 若要接受您的选择,单击 添加引用 对话框中的 确定 。

            如果您收到一条消息在所选库生成包装,单击 是 。
   5. 在代码窗口中替换所有代码为以下代码:

      namespace CdoSys
      {
          using System;
          class Class1
          {
              static void Main(string[] args)
              {
                  try
                  {           
                  CDO.DropDirectory iDropDir = new CDO.DropDirectory();
                  CDO.IMessages iMsgs;
                  CDO.IMessage iMsg;
                 

                  iMsgs = iDropDir.GetMessages("C://Inetpub//mailroot//Drop");
                  Console.WriteLine("Count: " + iMsgs.Count);

                  // Get first message.
                  iMsg = iMsgs[1];

                  ADODB.Stream stm = new ADODB.Stream();
                  stm.Open(System.Reflection.Missing.Value, ADODB.ConnectModeEnum.adModeUnknown,
                           ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified,
                           "", "");

                  stm.Type = ADODB.StreamTypeEnum.adTypeText;
                  stm.Charset = "US-ASCII";

                  CDO.IDataSource iDsrc;
                  iDsrc = iMsg.DataSource;

                  iDsrc.SaveToObject(stm, "_Stream");
                                 // TODO: modify the file path.
                  stm.SaveToFile("C://temp//Test.eml", ADODB.SaveOptionsEnum.adSaveCreateOverWrite);


                  iMsg = null;
                  iMsgs = null;
                  iDropDir = null;
                  iDsrc = null;
                  stm = null;
                  }
                  catch (Exception e)
                  {
                      Console.WriteLine("{0} Exception caught.", e);
                  }
                  return;
              }
               }
      }

      stm.SaveToFile ("C://temp//Test.eml、 ADODB.SaveOptionsEnum.adSaveCreateOverWrite) ; iMsg = 空值 ; iMsgs = 空值 ; iDropDir = 空值 ; iDsrc = 空值 ; STM = null;} catch (Exception e) {Console.WriteLine ("捕获 {0} 异常",e);} 返回 ;}}}。
   6. TODO 代码中出现的位置,修改代码,如所示。
   7. 要生成并运行该程序,按 F 5。


如何使用 Cdosys.dll 库使用 Visual C# 中发送电子邮件带有附件

本 文介绍如何使用协作数据对象 (CDO) 的 Windows 2000 库 (Cdosys.dll) 发送带附件的电子邮件。 可以发送文本或 HTML 或网页的电子邮件正文中通过使用本地的 SMTP 服务器或使用在 Microsoft Visual C# 中的智能主机服务器。

请注意 Cdosys.dll 库也称为是 CDOSYS。

"摘要"一节中描述用作 CDOSYS 请按照下列步骤操作:

   1. 启动 Microsoft Visual Studio。
   2. 在 文件 菜单上单击 新建 ,然后单击 项目 。
   3. 在 项目类型 ,下单击 Visual C# ,然后单击 模板 下的 控制台应用程序 。 情况默认,创建 Program.cs。

      请注意 在 Microsoft Visual C#.NET 2003 中将 Visual C# 更改为 Visual C# 项目 。 情况默认,创建 Class 1.cs。
   4. 添加一个对 Microsoft CDO Windows 2000 库 的引用。 要这样做,请按下列步骤操作:
         1. 在 项目 菜单上单击 添加引用 。
         2. 在 COM 选项卡上找到 Microsoft CDO Windows 2000 库 。

            请注意 在 Visual C# N 单击 选择 。
         3. 若要接受您的选择,单击 添加引用 对话框中的 确定 。

            如果您收到一个对话框,在所选库生成包装,单击 是 。
   5. 在代码窗口中替换所有代码为以下代码:

      namespace CdoSys
      {
          using System;
          class Class1
          {
              static void Main(string[] args)
              {
                  try
                  {           
                      CDO.Message oMsg = new CDO.Message();
                      CDO.IConfiguration iConfg;

                      iConfg = oMsg.Configuration;

                      ADODB.Fields oFields;
                      oFields = iConfg.Fields;      

                      // Set configuration.
                      ADODB.Field oField = oFields["http://schemas.microsoft.com/cdo/configuration/sendusing"];
                             
                      //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" +
                      //    "<HEAD>/n" +
                      //    "<TITLE>Sample GIF</TITLE>/n" +
                      //    "</HEAD>/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"; 

                      //TODO: Change the To and From address to reflect your information.                      
                      oMsg.From = "someone@example.com";
                      oMsg.To = "someone@example.com";
                      //ADD attachment.
                      //TODO: Change the path to the file that you want to attach.
                      oMsg.AddAttachment("C://Hello.txt", "", "");
                      oMsg.AddAttachment("C://Test.doc", "", "");
                                          oMsg.Send();
                  }
                  catch (Exception e)
                  {
                      Console.WriteLine("{0} Exception caught.", e);
                  }
                  return;
              }
          }
      }

   6. TODO 代码中出现的位置,修改代码,如所示。
   7. 要生成并运行该程序,按 F 5。
   8. 请验证该电子邮件已被同时发送和收到。
from: http://support.microsoft.com/kb/310221
http://support.microsoft.com/kb/310224/
http://support.microsoft.com/kb/310225/
http://support.microsoft.com/kb/310212/

目录
相关文章
|
6月前
|
C#
C# WinForm发送Email邮件
C# WinForm发送Email邮件
C# WinForm发送Email邮件
|
6月前
|
数据采集 前端开发 C#
C#编程艺术:Fizzler库助您高效爬取www.twitter.com音频
Twitter是全球最大的社交媒体平台之一,包含丰富的音频资源。用户可以在Twitter上发布、转发、评论和收听各种音频内容,如音乐、播客、新闻、故事等,直接从Twitter抓取音频数据并非易事,尤其是在考虑到可能的封锁和反爬虫机制。Twitter会对频繁访问的IP地址进行限制或封禁,以防止恶意爬虫的行为。因此,我们需要使用一些技术手段来规避这些障碍,确保稳定而高效的数据访问。
102 1
C#编程艺术:Fizzler库助您高效爬取www.twitter.com音频
|
2月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
1月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
60 8
|
1月前
|
C# 数据安全/隐私保护
C#使用 MailKit 收发邮件
【10月更文挑战第15天】在C#中使用MailKit库可轻松实现邮件的发送与接收。首先需通过NuGet包管理器安装MailKit,并编写代码设置发件人、收件人、邮件主题及正文,连接邮件服务器并认证后即可发送邮件。接收邮件时,同样需连接服务器并认证,然后打开收件箱遍历读取邮件信息。整个过程需根据实际邮件服务器配置相应参数。
|
2月前
|
SQL 开发框架 安全
并发集合与任务并行库:C#中的高效编程实践
在现代软件开发中,多核处理器普及使多线程编程成为提升性能的关键。然而,传统同步模型在高并发下易引发死锁等问题。为此,.NET Framework引入了任务并行库(TPL)和并发集合,简化并发编程并增强代码可维护性。并发集合允许多线程安全访问,如`ConcurrentQueue&lt;T&gt;`和`ConcurrentDictionary&lt;TKey, TValue&gt;`,有效避免数据不一致。TPL则通过`Task`类实现异步操作,提高开发效率。正确使用这些工具可显著提升程序性能,但也需注意任务取消和异常处理等常见问题。
48 1
|
3月前
|
C# 数据库
C# 使用 DbDataReader 来访问数据库
C# 使用 DbDataReader 来访问数据库
68 2
|
3月前
|
数据库 C#
C# 使用SqlDataAdapter和DataSet来访问数据库
C# 使用SqlDataAdapter和DataSet来访问数据库
30 0
|
C# Windows
[记录]c#.net framework 4.5调用运行时库
[记录]c#.net framework 4.5调用运行时库
|
6月前
|
数据采集 前端开发 数据挖掘
Fizzler库+C#:从微博抓取热点的最简单方法
本文介绍如何使用Fizzler库和C#构建微博热点信息爬虫。通过Fizzler的CSS选择器定位关键信息,提取热点标题和排名,实现微博内容的智能挖掘。示例代码展示单线程和多线程采集方法,并涉及代理IP使用。
Fizzler库+C#:从微博抓取热点的最简单方法