asp.net 2.0发送和接收邮件总结

总结:.用asp.net 2.0发送邮件非常的方便,只需要用using System.Net.Mail命名空间下的类就可以完成发送邮件的功能,发送邮件的服务器可以有以下几种情况:
1.本地的smtp服务器
2.网络上的smtp服务器(smtp.163.com等)
以下是我测试发送邮件的范例,基本上都考虑到的所有的情况,如果还有什么没有考虑到的请给我留言,我接续完善其功能.
1.新建一网站名字叫SentEmailText.
2.添加一个新的页面default.aspx
代码如下:
< form  id ="Form1"  runat ="server"  method ="post" >
     
< div  id ="content" >
                 
< div  id ="msg" >
                    
< div  id ="msg_title" > Send Email Test </ div >
                    
< div  id ="msg_prompt" ></ div >
                    
< asp:ValidationSummary  id ="msg_alarm"  runat ="server" ></ asp:ValidationSummary >
                
</ div >
                
< div  id ="form" >
                     
< div >
                        
< label  for ="SmtpServerText" > Sever name: </ label >
                        
< input  type ="text"   id ="SmtpServerText"  name ="SmtpServerText"  runat ="server"   />
                    
</ div >
                     
< div >
                        
< label  for ="SmtpServerPort" > Sever Port: </ label >
                        
< input  type ="text"  id ="SmtpServerPort"   name ="SmtpServerPort"  runat ="server"   />
                    
</ div >
                     
< div >
                        
< label  for ="UserName" > User Name: </ label >
                        
< input  type ="text"   name ="UserName"  id ="UserName"  runat ="server"   />
                    
</ div >
                     
< div >
                        
< label  for ="Pwd" > Pwd: </ label >
                        
< input  type ="text"   name ="Pwd"  runat ="server"  id ="Pwd"   />
                    
</ div >
                     
< div >
                        
< label  for ="FromAddress" > From Address: </ label >
                        
< input  type ="text"   name ="FromAddress"  runat ="server"  id ="FromAddress"   />
                    
</ div >
                     
< div >
                        
< label  for ="SendAddress" > Send Address: </ label >
                        
< input  type ="text"   name ="SendAddress"  runat ="server"  id ="SendAddress"   />
                    
</ div >
                     
< div >
                        
< label  for ="attachment" > Attachment: </ label >
                        
< input  type ="file"  runat ="server"  name ="attachment"  id ="attachment"   />
                    
</ div >
                     
< div >
                        
< label  for ="txtSubject" > Email Subject: </ label >
                        
< input  type ="text"   name ="txtSubject"  runat ="server"  id ="txtSubject"   />
                    
</ div >
                    
< div >
                        
< label  for ="txtBody" > Email Body: </ label >
                        
< textarea  name ="txtBody"  runat ="server"  rows ="10"  cols ="50"  id ="txtBody" ></ textarea >
                    
</ div >
                    
< div >
                        
&nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;   &nbsp;
                        
< input  type ="submit"  value ="Send Email"  class ="prim"  id ="btnSend"  runat ="server"  onserverclick ="btnSend_ServerClick"   />
                    
</ div >
                
</ div >
       
</ div >
    
</ form >
3.新建一个style的文件夹,添加样式页面,主要功能是表单的对齐样式,比较通用的设置(见附件)
4.添加一个mail的类文件,注意用于发送邮件考虑的几种情况(见附件)
using  System;
using  System.Text; 
using  System.Net.Mail;
using  System.Net.Sockets;
using  System.IO;
public   class  Mail
{
  
#region "Custom var"
        
private string _User;
        
private string _Pwd;
        
private string _Host;
        
private int _Port;
  
#endregion


  
#region "Property"
        
public int Port
        
{
            
get
            
{
                
return _Port;
            }

            
set
            
{
                _Port 
= value;
            }

        }

        
public string User
        
{
            
get
            
{
                
return _User;
            }

            
set
            
{
                _User 
= value;
            }

        }

        
public string Pwd
        
{
            
get
            
{
                
return _Pwd;
            }

            
set
            
{
                _Pwd 
= value;
            }

        }

        
public string Host
        
{
            
get
            
{
                
return _Host;
            }

            
set
            
{
                _Host 
= value;
            }

        }

  
#endregion


  
#region "OverLoad"
    
public Mail(string user, string pwd,string host,int port)
    
{//other smtp server including username and pwd
        this._User = user;
        
this._Pwd = pwd;
        
this._Host = host;
        
this._Port = port;
    }

    
public Mail(string host,int port)
    
{//other smtp server but username and pwd
        this._Port = port;
        
this._Host = host;
    }

    
public Mail()
    
{//local smtp server and port=25
        this._Port = 25;
        
this._Host = "127.0.0.1";
    }

  
#endregion


  
#region "Send Emial including groups and attachment"
    
/// <summary>
    
/// Sent emails including attachment
    
/// </summary>
    
/// <param name="toUser">From Address</param>
    
/// <param name="toMail">To Address</param>
    
/// <param name="subject">The subject of Email</param>
    
/// <param name="body">The body of Email</param>
    
/// <param name="ishtml">Html Or Text</param>
    
/// <param name="priority">The priority of Email</param>
    
/// <param name="filenames">the attachment of email(optional)</param>

    public void SendMailWithAttachment(string toUser,string toMail, string subject, string body,bool ishtml,MailPriority priority,params string[] filenames)
    
{
        System.Net.Mail.MailMessage msg 
= new System.Net.Mail.MailMessage(toUser,toMail,subject,body);                  
        msg.BodyEncoding 
= Encoding.UTF8;
        msg.Priority 
= priority;
        msg.IsBodyHtml 
= ishtml ;
        
if (filenames != null)
        
{
            
foreach (string s in filenames)
            
{
                msg.Attachments.Add(
new Attachment(s));
            }

        }

        System.Net.Mail.SmtpClient sc 
= new SmtpClient(Host, Port);
        sc.EnableSsl 
= false;
        sc.Timeout 
= 3600000;
        sc.UseDefaultCredentials 
= false;
        sc.Credentials 
= new System.Net.NetworkCredential(_User, _Pwd);
        sc.DeliveryMethod 
= SmtpDeliveryMethod.Network;
        
try
        
{
            sc.Send(msg);
        }

        
catch (Exception e)
        
{
            
throw e;
        }

    }

    
/// <summary>
    
/// Sent Email including groups and attachment
    
/// </summary>
    
/// <param name="toUser">From Address</param>
    
/// <param name="toMail">To Address</param>
    
/// <param name="subject">The subject of Email</param>
    
/// <param name="body">The body of Email</param>
    
/// <param name="ishtml">Html Or Text</param>
    
/// <param name="priority">The priority of Email</param>
    
/// <param name="filenames">The attachment of Email(optional)</param>

    public void SendMailWithGroupWithAttachment(string toUser,string toMail, string subject, string body,bool ishtml,MailPriority priority,params string[] filenames)
    
{
        
string[] toMails = toMail.Split(';');
        System.Net.Mail.MailMessage msg 
= new System.Net.Mail.MailMessage();
        msg.From
=new MailAddress(toUser );
        
foreach (string s in toMails)
        
{
            msg.To.Add(s);
        }

        msg.Subject 
= subject;
        msg.Body 
= body;
        msg.BodyEncoding 
= Encoding.UTF8;
        msg.Priority 
= priority;
        msg.IsBodyHtml 
= ishtml;
        
if (filenames != null)
        
{
            
foreach (string s in filenames)
                msg.Attachments.Add(
new Attachment(s));
        }

        System.Net.Mail.SmtpClient sc 
= new SmtpClient(Host,Port);
        sc.EnableSsl 
= false;
        sc.Timeout 
= 3600000;
        sc.UseDefaultCredentials 
= false;
        sc.Credentials 
= new System.Net.NetworkCredential(_User, _Pwd);
        sc.DeliveryMethod 
= SmtpDeliveryMethod.Network;
        
try
        
{
            sc.Send(msg);
        }

        
catch (Exception e)
        
{
            
throw e;
        }

    }

 
#endregion


  
/// <summary>
  
/// Received Email
  
/// </summary>

    public void ReseiveMail()
    
{
        
string ServerHost = "pop3."+this._Host ;
        TcpClient tcp 
= new TcpClient(ServerHost, 110);
        NetworkStream ns 
= tcp.GetStream();
        StreamReader sr 
= new StreamReader(ns);
        StreamWriter sw 
= new StreamWriter(ns);
     }

 }

5.页面调用方式参见附件
6.附件下载 附件(源代码下载)
付出最大努力,追求最高成就。
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值