【问题标题】:updating Classic ASP email code to c# Asp.Net将经典 ASP 电子邮件代码更新为 c# Asp.Net
【发布时间】:2014-12-18 13:12:45
【问题描述】:

我写了很多发送电子邮件的应用程序,通常我创建一个 SMTP 客户端,使用用户名和密码进行身份验证,就是这样!我现在正在更新一些旧的经典 ASP 代码,他们在其中发送了这样的电子邮件:

Set objMessage      = Server.CreateObject("CDO.Message")
objMessage.To       = strTo
objMessage.From     = strFrom
objMessage.Bcc      = strBcc
objMessage.Subject  = strSubject
objMessage.TextBody = strBody
objMessage.Send
Set objMessage      = Nothing

我在 Google 上搜索了一下,发现显然 CDO 对象很久以前就被弃用了,

我的问题是:

上面的代码是否真的能够在不创建某种类型的带有身份验证的客户端的情况下发送电子邮件?以及使用 c# 4.5 更新此代码的最佳方法是什么??

【问题讨论】:

  • “创建某种类型的客户端”是什么意思?每当您发送 SMTP 邮件时,您都必须创建一个客户端。
  • @DavidG - 好吧,我的意思是,这些信息是如何存储在经典的 asp 网站中的?
  • @DavidG - 我明白这一点,但是经典的 ASP 是否有内置的东西可以做到这一点,所以你不必创建客户端,因为他们会为你做
  • CDO 是一个 ActiveX 组件,我不记得它从哪里得到它的设置。它不是专门为 ASP 创建的,但它几乎已成为将电子邮件嵌入 ASP 应用程序的事实上的方式。
  • @Vogel612 - 意味着我需要从 .Net 4.5 访问同一个 ActiveX 组件,或者找到他们的凭据来创建我自己的 SMTP 客户端。现在都不重要了,客户决定不让我做这项工作,并坚持使用经典的 ASP。哦,好吧,我只是在评论,所以你明白了

标签: c# asp.net asp-classic smtp cdo.message


【解决方案1】:

CDO 是一个 ActiveX 组件。它不是专门为 ASP 创建的,但它几乎成为了将电子邮件嵌入 ASP 应用程序的事实上的方式。它成为您的 SMTP 客户端,通常使用本地 SMTP 服务器将电子邮件中继到另一个 SMTP 服务器进行转发。

要在 .Net 4.5 中使用 C# 发送电子邮件,请使用

//Create a Smtp client, these settings can be set in the web.config and
//you can use the parameterless constructor
SmtpClient client=new SmtpClient("some.server.com");
//If you need to authenticate
client.Credentials=new NetworkCredential("username", "password");

//Create the message to send
MailMessage mailMessage = new MailMessage();
mailMessage.From = "someone@somewhere.com";
mailMessage.To.Add("someone.else@somewhere-else.com");
mailMessage.Subject = "Hello There";
mailMessage.Body = "Hello my friend!";

//Send the email
client.Send(mailMessage);

【讨论】:

  • 这正是我的想法,我通常以这种方式发送电子邮件。我不知道是否有办法在 .Net 4.5 中使用 CDO ActiveX 组件,不过已经不重要了。客户决定坚持使用经典 ASP - 尽管我另有建议,并告诉他们经典 ASP 已在 13 年前正式弃用,当时我还在上高中
猜你喜欢
  • 1970-01-01
  • 2012-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多