.net 2.0发送电子邮件

      这两天一直在做用2.0发送电子邮件 ,今天基本完工,现把过程记录下来:

      其实邮件发送的代码和原理网上很多,可以搜索得到的,就不多说了.

 MailMessage m_message  =   new  MailMessage();

        m_message.From 
=   new  MailAddress( " translan2005@126.com " );

        m_message.To.Add(
new  MailAddress( " webmaster@njjsk.com " ));

        m_message.IsBodyHtml 
=   true ;

        m_message.Subject 
=   " 电子邮件 " ;

        m_message.Body 
=  strHtml;

        
if  (strPath  !=   "" )
        
{
            Attachment AttObj 
= new Attachment(strPath);
      
            m_message.Attachments.Add(AttObj);

        }


        m_message.BodyEncoding 
=  Encoding.GetEncoding( " gb2312 " );

        m_message.SubjectEncoding 
=  Encoding.GetEncoding( " gb2312 " );

        SmtpClient m_smtpClient 
=   new  SmtpClient();

        
// m_smtpClient.Credentials();

        m_smtpClient.Send(m_message);

因为我要把当前页面发送到邮箱当中,所以 IsBodyHtml 设为 true ,.如果将前台html都敲入到body中,会是很大工作量,在网上搜到了一段获取html的代码:

 

  public   string  GetHtml( string  url)
    
{
        
string strValue = SetValue();
        WebRequest objRequest 
= System.Net.HttpWebRequest.Create(url + "?" + strValue);
        StreamReader sr 
= new StreamReader(objRequest.GetResponse().GetResponseStream());
        
string result = sr.ReadToEnd();       
        sr.Close();
        
return result;
    }

 

一开始用发送文本做测试,每次发送总是失败,诺顿返回信息"与服务器连接失败",搞了好长时间才明白是诺顿启用了Internet电子邮件自动防护的原因,在诺顿的设置中关掉后测试成功.

接下来就是测试发送页面,页面上有些radiobuttonlist和text控件需要手工填入,但是发送到邮箱中后又全都为空.只好在页面载入的时候取值

 

  private   string  SetValue()
    
{
        
string A = rdo_One.SelectedItem.Text;
        
string D = rbl1.SelectedItem.Text;
        
string E = RadioButtonList2.SelectedItem.Text;
        
string F = RadioButtonList3.SelectedItem.Text;
        
string G = RadioButtonList4.SelectedItem.Text;
        
string H = RadioButtonList5.SelectedItem.Text;

        
string I = txt_Hospital.Text.Trim();
        
string J = txt_Addr.Text.Trim();
        
string K = txt_Post.Text.Trim();
        
string L = txt_Link.Text.Trim();


        
return "A=" + A + "&B=" + B + "&I=" + I + "&C=" + C + "&D=" + D + "&E=" + E + "&F=" + F + "&G=" + G + "&H=" + H + "&J=" + J + "&K=" + K + "&L=" + L;
    }

 

但是这样在本页面(Mail.aspx)获取不到这些值,只好重写另一个一样的页面(SendMail.aspx),只作为发送到邮箱后显示的页面,同时也要把传入页面的html换为新页面,并在新页面获取这些值:

SendMail.aspx.cs

  protected   void  Page_Load( object  sender, EventArgs e)
    
{
        lbl_B.Text 
= Request.QueryString["B"];
        lbl_A.Text 
= Request.QueryString["A"];
        lbl_C.Text 
= Request.QueryString["C"];
        lbl_D.Text 
= Request.QueryString["D"];
        lbl_E.Text 
= Request.QueryString["E"];
        lbl_F.Text 
= Request.QueryString["F"];
        lbl_G.Text 
= Request.QueryString["G"];
        lbl_H.Text 
= Request.QueryString["H"];
        lbl_I.Text 
= Request.QueryString["I"];
        lbl_J.Text 
= Request.QueryString["J"];
        lbl_K.Text 
= Request.QueryString["K"];
        lbl_L.Text 
= Request.QueryString["L"];
    }

对了,还有配置文件差点忘了,呵呵.我用的是126的smtp

 

< system.net >
              
< mailSettings >
            
< smtp from = " username@126.com " >
                
< network host = " smtp.126.com "  password = " pwd "  port = " 25 "  userName = " username@126.com "  defaultCredentials = " false " />
            
</ smtp >
        
</ mailSettings >
    
</ system.net >

 

这样基本上完成了.写得比较乱,希望大家能有改进意见

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值