在ASP.NET 1.1上面发送Mail,使用的是System.Web.Mail命名空间,而使用的是STMP Server进行发送。代码非常简单,下面是一个SendMail函数,它接收一封邮件需要的各个要素,然后使用SmtpMail.Send方法发送邮件。
1 public static void SendMail(string to, string from, string subject, string body, string smtpServer)
2 {
3 MailMessage message = new MailMessage();
4 message.To = to;
5 message.From = from;
6 message.Subject = subject;
7 message.Body = body;
8
9 try
10 {
11 SmtpMail.SmtpServer = smtpServer;
12 SmtpMail.Send(message);
13 }
14 catch(Exception e)
15 {
16 }
17 }
2 {
3 MailMessage message = new MailMessage();
4 message.To = to;
5 message.From = from;
6 message.Subject = subject;
7 message.Body = body;
8
9 try
10 {
11 SmtpMail.SmtpServer = smtpServer;
12 SmtpMail.Send(message);
13 }
14 catch(Exception e)
15 {
16 }
17 }
写这篇文章不是为了说明怎么使用这个函数,因为这个在MSDN上写得已经非常清楚。这个函数用起来看似简单,实际上暗藏玄机。如果你不作任何设置就使用如下的方法来发送mail,你立即会的到一个错误信息:
1 SendMail("sjphappy@126.com", "sjphappy@126.com", "test", "test", "127.0.0.1");
错误信息说:"could not access 'CDO.Message' Object"。收到这样的消息,你要做到第一件事就是去查看innerexception的内容,然后根据它来做处理。
如果innerexception='Exception has been thrown by the target of an invocation',那么你就应该尝试打开inetmgr,到右击"默认SMTP虚拟服务器"->"属性"->"访问"->"中继",然后加入127.0.0.1这个地址就可以解决问题。
如果需要更多这方面的帮助,请访问http://www.systemwebmail.com/