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

asp.net|问题

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

  一、 发送邮件

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

MailMessage msg = new MailMessage();
msg.From = new MailAddress("address@domain.com", "Person's Name");
msg.To.Add(new MailAddress("destination@domain.com", "Addressee's Name");
msg.To.Add(new MailAddress("destination2@domain.com", "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" <destination@domain.com>

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

  二、 存在的问题

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

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

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

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

时间: 2024-12-31 02:16:04

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

ASP.NET 2.0发送电子邮件全面剖析之二

asp.net 一.简介 在上篇中我们详细分析过,.NET框架2.0版本提供了一个新的命名空间(System.Net.Mail)和一些发送电子邮件的新类(注意:.NET框架1.x版本中提供的命名空间System.Web.Mail及相关的类仍然可以使用,以实现向后兼容性).而且,我们还详细分析过如何使用System.Net.Mail命名空间中的MailMessage和SmtpClient类来发送简单的普通文本格式的电子邮件消息. 本篇将讨论与电子邮件相关的更高级的选项.我们要分析如何发送HTML格

“ASP.NET 2.0 正式版中无刷新页面的开发”中示例代码与Firefox兼容的解决

asp.net|解决|示例|刷新|无刷新|页面 这几天正着手开始写毕业设计,因为发生了一些事情,所以一直拖到现在才开始.其实我准备做一个ASP.NET 2.0并且使用AJAX的Web项目,于是到博客园到处寻着AJAX的文章,恰好翻到了Leon.Zhou的ASP.NET 2.0 正式版中无刷新页面的开发按照代码示例和讲解做了一个页面,确实不错啊.因为俺平时几乎都用Firefox,所以就顺手测试了一下Firefox下的效果,结果发现点了Button之后没有反应--于是打开Javascript控制台,

asp.net 4.0+ webform程序中集成mvc4_实用技巧

本文为大家分享了asp.net 4.0+ webform程序中集成mvc4的方法,供大家参考,具体内容如下 1.新建packages.config文件,里面加上必要的程序集  <?xml version="1.0" encoding="utf-8"?> <packages> <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targe

ASP.NET 2.0 正式版中无刷新页面的开发(示例代码的补充)

asp.net|示例|刷新|无刷新|页面 原文请见Leon.Zhou的:http://pfzhou.cnblogs.com/archive/2006/03/31/363342.html 下载了示例代码,并转换成VB了,AJAX功能测试成功.但遇到些小问题:Demo1很正常.Demo2按Leon原来的写法testAJAX.aspx.vb中Line 22不成功.所以我直接在IDE环境中,修改button3的OnClientClick属性,见testAJAX.asp的Line 52.测试成功.Demo

ASP.NET 2.0实现模板中的数据绑定系列

模板化的数据绑定控件为我们在页面上显示数据提供了根本的灵活性.你可能还记得ASP.net v1.x中的几个模板化控件(例如DataList和Repeater控件).ASP.NET 2.0仍然支持这些控件,但在模板中绑定数据的语法已经被简化和改善了.本文将讨论在数据绑定控件模板中绑定数据的多种方法. 数据绑定表达式 ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(

用ASP.NET 2.0在数据库中存储二进制文件

一.引言 在构建数据驱动的应用程序时,经常需要捕获文本和二进制数据.这样的程 序可能需要存储图像,PDF,Word文件或其它二进制数据.能够使用两种方式来 存储这些二进制数据:存储在web服务器的文件系统上并添加一个对数据库中相 应文件的引用:或直接存储在数据库本身. 文本数据,例如字符串,数字,日期,GUID,货币值,等等-在数据库系统中 都有适当的和相应的数据类型定义.例如,在Microsoft SQL Server中,你可以 使用int数据类型来存储一个整数值:而为了存储一个字符串值,你可

三星I9300手机发送电子邮件中添加附件

 注意:如果要实现发送电子邮件功能,需要先设置好您的电子邮件账户才可以操作.设置邮件账户操作,请参考常见问题解答中的GT-I9300如何设置我的电子邮件账户.   1.在待机模式下,然后我们找到[应用程序]点击进入,如图.     2.然后我们找到[电子邮件]点击进入,如图.     3. 选择[新建邮件]图标.     4.选择[附件]图标,然后选择您要发送的项目.     5.上述操作添加完毕后,输入收件人和主题,然后点击信封加箭头图标,邮件就发送了.  

用ASP.NET 2.0在Oracle中存取图片(文件)的操作

asp.net|oracle 有时由于某种需要(如安全性)须将图片或文件存放在数据库中,当然一般情况下特别是文件比较大的时候很多人不提倡将文件以二进制的形式存放在数据库中的,现将Oracle中文件的存取整理如下(思路和在SQL Server2000中存取一样,存储时在数据中存放图片或文件的二进制字节流,读出时将数据库中对应字段读取到字节数据,然后输出):       1.在TOAD或SQLPlus中创建一下数据库表. 1CREATE TABLE TEST_TABLE2(3  ID     VAR

asp 利用jmail.smtpMail发送电子邮件程序

Public Function SendJmail(Email,Topic,MailBody,GB_ip,sys_mailbox)   Dim JMail   Set JMail = Server.CreateObject("JMail.SMTPMail")   JMail.LazySend          = true   JMail.silent            = true   JMail.Charset           = "gb2312"