如何将电子邮件功能从ASP Classic迁移到ASP.NET?

时间:2009-02-03 15:39:00

标签: c# email asp-classic

我以前在ASP Classic中使用CDO.MessageCDO.Configuration来创建HTML电子邮件,这非常简单。在.NET中,您似乎必须为System.Net.Mail.Message对象提供内容的HTML字符串,然后以某种方式嵌入所需的图像。在.NET中有一种简单的方法吗?我是.NET MVC的新手,非常感谢任何帮助。

这就是它在ASP Classic中的表现:

Set objCDO = Server.CreateObject("CDO.Message")
objCDO.To = someone@somthing.com
objCDO.From = me@myaddress.com
objCDO.CreateMHTMLBody "http://www.example.com/somepage.html"
objCDO.Subject = sSubject

'the following are for advanced CDO schematics
'for authentication and external SMTP

Set cdoConfig = CreateObject("CDO.Configuration")
With cdoConfig.Fields  
  .Item(cdoSendUsingMethod) = cdoSendUsingPort '2 - send using port  
  .Item(cdoSMTPServer) = mail.myaddress.com
  .Item(cdoSMTPServerPort) = 25
  .Item(cdoSMTPConnectionTimeout) = 10
  .Item(cdoSMTPAuthenticate) = cdoBasic
  .Item(cdoSendUsername) = "myusername"
  .Item(cdoSendPassword) = "mypassword"
  .Update  
End With

Set objCDO.Configuration = cdoConfig

objCDO.Send

基本上我想发送一个我的观点(减去site.master)作为电子邮件,嵌入图像。

2 个答案:

答案 0 :(得分:0)

我不知道一个简单的方法,但您可以使用WebClient获取您的页面,然后将响应作为正文传递。

示例:

var webClient = new WebClient();

byte[] returnFromPost = webClient.UploadValues(Url, Inputs);

var utf = new UTF8Encoding();
string returnValue = utf.GetString(returnFromPost);

return returnValue;

注意:输入只是一个后置变量的字典。

我认为你会遇到的一个问题是我不认为你会得到这些照片。您可以解析所获得的HTML,然后将图像绝对地返回到您的服务器。

答案 1 :(得分:0)

感谢您的帮助 - 这是一个由.NET MVP发布的非常简洁和全面的教程 http://msdn.microsoft.com/en-us/vbasic/bb630227.aspx