当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET 2.0发送电子邮件中存在的问题

ASP.NET
获取字符串数组的最后一段字符
asp.net遍历目录文件夹和子目录所有文件
ASP.NET 中文显示之两种解决方法
asp.net替换和恢复html特殊字符
asp.net简化接收参数值的函数
asp.net验证一个字符串是否符合指定的正则表达式
asp.net求3位不同数字的组合数
C#(.NET)数据访问连接、查询、插入等操作的封装类
在ASP.NET2.0中通过Gmail发送邮件的代码
asp.net下配置数据源时出现: 未将对象引用设置到对象的实例。
asp.net gridview强制换行
asp.net gridview多页时的批量删除
未处理的事件"PageIndexChanging" 之解决方案
gridview调整单元格宽度的方法
aspx如果引用cs中的变量的方法
asp.net导出EXCEL的功能代码
asp.net注册Javascript的方法
Asp.Net 文件操作基类
Asp.Net+XML操作基类(修改,删除,新增,创建)
asp.net 获取指定文件夹下所有子目录及文件(树形)

ASP.NET 2.0发送电子邮件中存在的问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 135 ::
收藏到网摘: n/a

  在新发行的ASP.NET 2.0版本中,微软不再建议使用System.Web.Mail命名空间而代之以新的System.Net.Mail命名空间。在这个新库中引入了许多新特征,但是在发送邮件的方式方面也相应地带入了一些小错误。

  一、 发送邮件

  在详细讨论这些小错误之前,让我们先看一段示例代码(我们假定你已经在文件开始添加了"using System.Net.Mail"):

MailMessage msg = new MailMessage();
msg.From = new MailAddress("[email protected]", "Person's Name");
msg.To.Add(new MailAddress("[email protected]", "Addressee's Name");
msg.To.Add(new MailAddress("[email protected]", "Addressee 2's Name");
msg.Subject = "Message Subject";
msg.Body = "Mail body content";
msg.IsBodyHtml = true;
msg.Priority = MailPriority.High;
SmtpClient c = new SmtpClient("mailserver.domain.com");
c.Send(msg);

  上面的代码与以前版本中的实现差不太多,仅是在指定消息时作了一些小的改动。不必自己来构建一个地址,你完全可以让系统为你代劳。如果你指定一个电子邮件地址和一个名字,它将自动地在消息中显示如下内容:

"Person's Name" <[email protected]>

  这正是一个电子邮件地址的"正确"格式。当然,你可以进一步把多个地址添加到To,CC和BCC集合中,其方式与上面完全相同。通过这种编程方式来实现发送大量消息要比分别发送每个消息要容易得多了-只需要把多个地址添加到BCC属性即可实现邮件的群发。

  二、 存在的问题

  现在,我们来分析一下其中存在的小错误。

  如前面所提及,这个新的命名空间中带有一些小错误。第一个是,当你发送一封电子邮件时,邮件的头部信息全部是以小写字母形式添加的。然而,在针对SMTP邮件RFC的规范中并没有指定邮件头部应该怎样大写;但是,许多垃圾邮件过滤程序却限制了头部没有正确大写的电子邮件消息。

  另一个错误与优先权设置有关系-通过优先权设置,用户可以指定一个消息在邮件客户端的重要程度。由于邮件头部的这种格式化方式(全部转化为小写),所以,我的邮件程序(Eudora)无法识别相应的优先权标志,因而也就不会专门标记出此邮件的重要程度。尽管这看上去有些琐碎,但是转换到新版本的System.Web.Mail以后这看上去并没有明显理由。

  所以,我还会继续探讨这个问题,如果实在找不到一个好的补救办法,那么我只要回到以前的System.Web.Mail以更有效了解决上面的警告问题。