HQT

追求.NET 技术永无止境

导航

利用.NET 发送Email 之SMTP篇(简单版)

Posted on 2005-10-19 16:58  HQT  阅读(506)  评论(0编辑  收藏  举报

本篇主要讨论利用 System.Web.Mail 命名空间下的 MailMessage 和 SmtpMail 两个类简单实现 Mail 的发送功能。

具体操作步骤及代码如下:(示例以 WinForm 来实现)

1. 在项目中添加应引用 -->  .net --> 找到 System.Web.Dll,确定,将其添加进来

2.添加using代码:
using System.Web.Mail;

3.编写发送核心代码:
private void SendMail(string server,string from,string to,string subject,string body,string username,string password)
        
{
            
try
            
{
                MailMessage mail 
= new MailMessage();
                mail.From 
= from;
                mail.To 
= to;
                mail.Subject 
= subject;
                mail.Body 
= body;
                mail.BodyFormat 
= MailFormat.Html;
                mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate""1"); 
                mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendusername", username);
                mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendpassword", password);

                SmtpMail.SmtpServer 
= server;
                SmtpMail.Send(mail);
            }

            
catch(Exception ex)
            
{
                MessageBox.Show(ex.Message
+ex.InnerException.Message);
            }

        }

注意,SendMail 方法中有这样三句话:
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate""1"); 
                mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendusername", username);
                mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendpassword", password);

是验证信息,如果没写或用户名密码有错的话,会提示
"未能访问 CDO.Message 对象"
这个是网上最常见的错误了,可以设个断点在捕捉出错点,查看下发生的原因一般都能找到。
这里给出几个CDO常见错误的解决办法:
蝈蝈俊.net :     http://blog.joycode.com/ghj/archive/2004/10/22/36274.aspx
SystemWebMail:  http://www.systemwebmail.com/faq/4.2.3.aspx


4. 可以在需要用的地方调用该方法即可。记得传入适当的参数。