0

我需要一些帮助将 System.Web.Mail 转换为 System.Net.Mail 以帮助在某些表单上适当地发送电子邮件通知。

使用的旧代码片段如下:

MailMessage NotificationEmail = new MailMessage();
NotificationEmail.BodyFormat = MailMessage.IsBodyHtml;
NotificationEmail.From = "RCHIPM@ttuhsc.edu";

//NotificationEmail.To = user;
NotificationEmail.To = "RCHIPM@ttuhsc.edu";

NotificationEmail.Subject = "Notification : ";
NotificationEmail.BodyFormat = MailFormat.Html;

我遇到的一些错误包括:

1.)“System.Net.Mail.Message”不包含“BodyFormat”的定义,并且找不到接受“System.Net.Mail.MailMessage”类型的第一个参数的扩展方法“BodyFormat”。

2.) 非静态字段、方法或属性“System.Net.Mail.MailMessage.IsBodyHTML.get”需要对象引用

3.) 无法将类型“字符串”隐式转换为“System.Net.Mail.MailAddress”

4.) 不能将属性或索引器“System.Net.Mail.MailMessage.To”分配给——它是只读的。

...在发生的其他类似错误中。

我很确定其中大部分都与我试图解决的主要问题相互关联,该主要问题只是试图将 System.Web.Mail 的系统使用转换为 System.Net.Mail。

我已经通过 NuGet 完成了所有可能的 MVC 和 Telerik 更新,所以这些都是最新的。我也更新了所有参考资料,所以我知道这不再是问题。

我可能需要在 Web.Config 上更改一些内容,但我不太确定应该添加或修改哪些内容。我总是厌倦编辑系统文件和程序集,以及人们对它们的提示,所以我尽量避免进行这些更改,除非它们是绝对必要的。

目前我在文件顶部同时使用 System.Web.Mail 和 System.Net.Mail,因此它当前显示为:

使用 System.Web.Mail;

使用 System.Net.Mail;

...作为它的库的一部分包括。顺便说一下,该系统使用.NET Framework 4。我应该尝试将其更新到 .NET Framework 4.5 吗?

有没有人有任何可能的解决方案来更新这个代码块?从这里搜索看起来有很多人有类似的问题,但每个人的问题似乎都有来自论坛版主的混合结果/答案。

所以这就是为什么我提交这个问题只是为了看看我会得到什么样的回应。

希望这对你们来说已经足够了。如果没有,请让我知道您是否需要其他信息,以便我为您提供。

谢谢!

4

1 回答 1

4

您的使用存在几个问题。这是通常发送 html 电子邮件的方式:

var mail = new MailMessage();

//set address (not just a string)
mail.From = new MailAddress("RCHIPM@ttuhsc.edu");
mail.To.Add("destination@destination.com");

//set the subject
mail.Subject = "This is the subject";
//set the body
mail.Body = "some html <b>in</b> here".
mail.IsBodyHtml = true;

//send the message
var smtp = new SmtpClient("127.0.0.1"); // Loopback address
smtp.Send(mail);
于 2014-06-12T19:13:55.040 回答