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


本篇主要讨论利用 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. 可以在需要用的地方调用该方法即可。记得传入适当的参数。

你可能感兴趣的:(email)