CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

求ASP.NET发送邮件的源代码 (调试成功立即结贴)

楼主langhaijian(asf)2006-01-20 09:56:33 在 .NET技术 / ASP.NET 提问

我想要用asp.net来写一个功能:发送mail到邮箱;     然后我想把这个程序包成service,让我的server  
  一开机变发这个email;   请高手提供发邮件的源代码: 问题点数:40、回复次数:19Top

1 楼ALLsharps(修改用户信息)回复于 2006-01-20 10:04:10 得分 20

public   static   bool   SendEmail(string   fromAddress,string   fromName,string   toAddress,string   toName,string   subject,string   body)  
  {  
  MailMessage   mail   =   new   MailMessage();  
  mail.From   =   fromName   +   "<"   +   fromAddress   +   ">"; //发件人邮箱;  
  mail.To   =   toName   +   "<"+   toAddress   +">"; //收件人邮箱  
  mail.Subject   =   subject; //邮箱主题  
  mail.Body   = body; //邮件内容  
  mail.BodyFormat   =   MailFormat.Html; //邮件格式 HTML,文本  
  mail.Priority   =   MailPriority.Normal; //邮件等级  
  try  
  {  
  SmtpMail.Send(mail); //发邮件  
  }  
  catch  
  {  
  return   false;  
  }  
  return   true;  
  }Top

2 楼langhaijian(asf)回复于 2006-01-20 10:10:18 得分 0

我不需要发件人信箱,只要发送一段文字到收件人那里就可以了;Top

3 楼pbwf(书生)回复于 2006-01-20 10:27:19 得分 0

我前几天晚上郁闷了好几天.就研究这个来着.  
  用Jmail楼主.我已经测试过了.可以发,能收到的.  
  在前台加个发送按钮,单击事件如下:  
  private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
  jmail.Message   MailObj=new   jmail.MessageClass();    
   
  MailObj.FromName="think";  
  MailObj.From="89384193@163.com";  
   
  MailObj.Logging=true;    
   
  MailObj.MailServerUserName="89384193";  
  MailObj.MailServerPassWord="***";  
   
  MailObj.Subject="**网发给你的密码.";  
  MailObj.HTMLBody="尊敬的用户!您好,您的帐户新密码是,为了安全起见,请您尽快修改密码,谢谢!";    
   
  MailObj.Charset="gb2312";  
  MailObj.Priority=3;    
       
  MailObj.AddRecipient("pbwf@sina.com","User","A");     //添加接收人    
   
         
  //发送    
   
  if(MailObj.Send("smtp.163.com",false))    
  {    
  Response.Write("新密码已发送至你的邮箱,请尽快查收!");  
  }    
  else    
  {    
  Response.Write("发送失败!");            
  }  
   
  }Top

4 楼langhaijian(asf)回复于 2006-01-20 10:36:01 得分 0

”书生“的解决方案跟我的不同啊;Top

5 楼langhaijian(asf)回复于 2006-01-20 10:56:11 得分 0

我不用JMAIL,用System.Web.Util   命名空间在ASP.NET;但是一楼哥们的dongdong我还没有跳出来Top

6 楼ALLsharps(修改用户信息)回复于 2006-01-20 11:02:40 得分 0

你最好做个邮件服务器,把SmtpServer改为你的服务地址,Top

7 楼langhaijian(asf)回复于 2006-01-20 11:20:34 得分 0

我写了下面一些代码:出现errror:还有我不太懂mail.from   ,因为我只是将一个mail送到mail.to这个地方;而且是用code   来发送,而不是用mail.from地址来发送???  
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
   
  MailMessage   Mail=new   MailMessage   ();  
          Mail.From="service@hjtc.com.cn";  
          Mail.To   ="haijianlang@yahoo.com.cn";  
  Mail.BodyFormat=MailFormat.Text;  
  Mail.Body   ="congratulation";  
  Mail.Subject   ="i   love   you   ";  
  SmtpMail.SmtpServer=   "localhost";  
                          SmtpMail.Send(Mail);  
     
   
   
  Error   Msg:  
  “/WebApplication6”应用程序中的服务器错误。  
  --------------------------------------------------------------------------------  
   
  服务器拒绝了一个或多个收件人地址。服务器响应为:   550   5.7.1   Unable   to   relay   for   haijianlang@yahoo.com.cn    
  说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。    
   
  异常详细信息:   System.Runtime.InteropServices.COMException:   服务器拒绝了一个或多个收件人地址。服务器响应为:   550   5.7.1   Unable   to   relay   for   haijianlang@yahoo.com.cn    
   
  源错误:    
   
   
  行   30:   Mail.Subject   ="i   love   you   ";  
  行   31:   SmtpMail.SmtpServer=   "localhost";  
  行   32:                           SmtpMail.Send(Mail);  
  行   33:      
  行   34:    
     
   
  源文件:   c:\inetpub\wwwroot\webapplication6\webform1.aspx.cs         行:   32    
   
  堆栈跟踪:    
   
   
  [COMException   (0x8004020f):   服务器拒绝了一个或多个收件人地址。服务器响应为:   550   5.7.1   Unable   to   relay   for   haijianlang@yahoo.com.cn  
  ]  
   
  [TargetInvocationException:   调用的目标发生了异常。]  
        System.RuntimeType.InvokeDispMethod(String   name,   BindingFlags   invokeAttr,   Object   target,   Object[]   args,   Boolean[]   byrefModifiers,   Int32   culture,   String[]   namedParameters)   +0  
        System.RuntimeType.InvokeMember(String   name,   BindingFlags   invokeAttr,   Binder   binder,   Object   target,   Object[]   args,   ParameterModifier[]   modifiers,   CultureInfo   culture,   String[]   namedParameters)   +473  
        System.Type.InvokeMember(String   name,   BindingFlags   invokeAttr,   Binder   binder,   Object   target,   Object[]   args)   +29  
        System.Web.Mail.LateBoundAccessHelper.CallMethod(Type   type,   Object   obj,   String   methodName,   Object[]   args)  
        System.Web.Mail.LateBoundAccessHelper.CallMethod(Object   obj,   String   methodName,   Object[]   args)  
   
  [HttpException   (0x80004005):   未能访问“CDO.Message”对象。]  
        System.Web.Mail.LateBoundAccessHelper.CallMethod(Object   obj,   String   methodName,   Object[]   args)  
        System.Web.Mail.CdoSysHelper.Send(MailMessage   message)  
        System.Web.Mail.SmtpMail.Send(MailMessage   message)  
        WebApplication6.WebForm1.Page_Load(Object   sender,   EventArgs   e)   in   c:\inetpub\wwwroot\webapplication6\webform1.aspx.cs:32  
        System.Web.UI.Control.OnLoad(EventArgs   e)  
        System.Web.UI.Control.LoadRecursive()  
        System.Web.UI.Page.ProcessRequestMain()  
   
     
   
   
  --------------------------------------------------------------------------------  
  版本信息:   Microsoft   .NET   Framework   版本:1.1.4322.573;   ASP.NET   版本:1.1.4322.573    
  Top

8 楼bonnie168(虚拟过客.net)回复于 2006-01-20 11:50:58 得分 0

顶,这些方法都不行,都是抄来抄去的Top

9 楼jonas20()回复于 2006-01-20 12:35:44 得分 20

一.利用Jmail发送邮件  
   
   
    1/**////   <summary>  
    2///   利用Jmail发送邮件  
    3///   </summary>  
    4private   void   SendMailByJmail()  
    5{  
    6         /**////建立发邮件类  
    7         jmail.MessageClass   oJmailMessage   =   new   jmail.MessageClass();  
    8          
    9         /**////   字符集  
  10         oJmailMessage.Charset   =   "GB2312";  
  11  
  12         /**////附件的编码格式  
  13         oJmailMessage.Encoding   =   "BASE64";  
  14         oJmailMessage.ContentType   =   "text/html";  
  15  
  16         /**////是否将信头编码成iso-8859-1字符集  
  17         oJmailMessage.ISOEncodeHeaders   =   false;  
  18  
  19         /**////   优先级  
  20         oJmailMessage.Priority   =   Convert.ToByte(1);  
  21          
  22         /**////发送人邮件地址  
  23         oJmailMessage.From   =   TxtEmail.Text.Trim();  
  24          
  25         /**////发送人姓名  
  26         oJmailMessage.FromName         =   TxtName.Text.Trim();  
  27  
  28         /**////   邮件主题  
  29         oJmailMessage.Subject         =   txtSubject.Text.Trim();  
  30  
  31         /**////身份验证的用户名  
  32         oJmailMessage.MailServerUserName   =   TxtSmtpUser.Text.Trim();  
  33  
  34         /**////用户密码  
  35         oJmailMessage.MailServerPassWord   =   TxtSmtpPwd.Text.Trim();  
  36  
  37         /**////添加一个收件人,抄送人和密送人的添加和该方法是一样的,只是分别使用AddRecipientCC和RecipientBCC两个属性  
  38         ///要是需要添加多个收件人,则重复下面的语句即可。添加多个抄送和密送人的方法一样  
  39         oJmailMessage.AddRecipient(txtReciver.Text.Trim(),"","");  
  40         if(""   !=   upFile.PostedFile.FileName)  
  41         {  
  42                 string   attpath   =   upFile.PostedFile.FileName;  
  43                 oJmailMessage.AddAttachment(@attpath,true,attpath.Substring(attpath.LastIndexOf(".")+1,3));//添加附件  
  44         }  
  45  
  46         /**////邮件内容  
  47         oJmailMessage.Body   =   txtContent.Text.Trim();  
  48  
  49         if(oJmailMessage.Send(TxtSmtServer.Text.Trim(),false))  
  50         {  
  51                 Response.Write("发送成功!");  
  52         }  
  53         else  
  54         {  
  55                 Response.Write("发送失败,请检查邮件服务器的设置!");  
  56         }  
  57  
  58         oJmailMessage   =   null;  
  59}  
  60Top

10 楼packe_peng_520()回复于 2006-01-20 14:21:20 得分 0

關注Top

11 楼langhaijian(asf)回复于 2006-01-20 15:08:52 得分 0

下面是我写的;有进展了,但是还是调试不成功;   我不用JMAIL;  
   
   
  MailMessage   Mail=new   MailMessage   ();  
          Mail.From="ilygaoquan@sohu.com.cn";  
          Mail.To   ="haijianlang@yahoo.com.cn";  
  Mail.BodyFormat=MailFormat.Text;  
  Mail.Body   ="congratulation";  
  Mail.Subject   ="i   love   you   ";  
  Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",   "1");   //basic   authentication    
  Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername",   "ilygaoquan");   //set   your   username   here    
  Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword",   "1222221");   //set   your   password   here    
  //SmtpMail.SmtpServer="lsg.moon.net";  
                          SmtpMail.SmtpServer=   "www.sohu.com";  
                          SmtpMail.Send(Mail);  
  Top

12 楼langhaijian(asf)回复于 2006-01-20 15:14:51 得分 0

但是有下面的error:  
   
  与服务器的传输连接失败。    
  说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。    
   
  异常详细信息:   System.Runtime.InteropServices.COMException:   与服务器的传输连接失败。    
   
  源错误:    
   
   
  行   35:   //SmtpMail.SmtpServer="lsg.moon.net";  
  行   36:                           SmtpMail.SmtpServer=   "www.sohu.com";  
  行   37:                           SmtpMail.Send(Mail);  
  行   38:      
  行   39:    
     
   
  源文件:   c:\inetpub\wwwroot\webapplication6\webform1.aspx.cs         行:   37    
   
  堆栈跟踪:    
   
   
  [COMException   (0x80040213):   与服务器的传输连接失败。  
     
  Top

13 楼langhaijian(asf)回复于 2006-01-20 15:27:15 得分 0

顶一下Top

14 楼wjjdnajj(色空)回复于 2006-01-20 16:05:24 得分 0

支持楼主不用jmailTop

15 楼langhaijian(asf)回复于 2006-01-20 17:32:18 得分 0

搞了一整天,还是不行,期待高手!Top

16 楼singlepine(小山)回复于 2006-01-21 23:20:34 得分 0

msdn里面有例子  
   
  void   Page_Load()  
  {  
                    if   (!IsPostBack)  
                    {  
                          txtTo.Text="john@contoso.com";  
                          txtFrom.Text="marsha@contoso.com";  
                          txtCc.Text="fred@contoso.com";  
                          txtBcc.Text="wilma@contoso.com";  
                          txtSubject.Text="Hello";  
                          txtBody.Text="This   is   a   test   message.";  
                          txtAttach.Text=@"C:\Documents   and   Settings\All   Users\Documents\My   Pictures\Sample   Pictures\Sunset.jpg,"  
                                +   @"C:\Documents   and   Settings\All   Users\Documents\My   Pictures\Sample   Pictures\Winter.jpg";  
                  txtBodyEncoding.Text   =   Encoding.ASCII.EncodingName;  
                  txtBodyFormat.Text="HTML";  
                    txtPriority.Text="Normal";  
                  txtUrlContentBase.Text="http://www.contoso.com/images";  
                  txtUrlContentLocation.Text="http://www.contoso.com/images";  
                          //   Name   of   relay   mail   server   in   your   domain.  
                  txtMailServer.Text="smarthost";  
                    }  
  }  
   
              void   btnSubmit_Click(Object   sender,   EventArgs   e)  
              {  
                    string   sTo,   sFrom,   sSubject,   sBody;  
                    string   sAttach,   sCc,   sBcc,   sBodyEncoding;  
                    string   sBodyFormat,   sMailServer,   sPriority;  
                    string   sUrlContentBase,   sUrlContentLocation;  
            int   iLoop1;  
   
            sTo   =   txtTo.Text.Trim();  
            sFrom   =   txtFrom.Text.Trim();  
            sSubject   =   txtSubject.Text.Trim();  
            sBody   =   txtBody.Text.Trim();  
            sAttach   =   txtAttach.Text.Trim();  
            sCc   =   txtCc.Text.Trim();  
            sBcc   =   txtBcc.Text.Trim();  
            sBodyFormat   =   txtBodyFormat.Text.Trim();  
            sBodyEncoding   =   txtBodyEncoding.Text.Trim();  
            sPriority   =   txtPriority.Text.Trim();  
            sUrlContentBase   =   txtUrlContentBase.Text.Trim();  
            sUrlContentLocation   =   txtUrlContentLocation.Text.Trim();  
            sMailServer   =   txtMailServer.Text.Trim();  
   
            MailMessage   MyMail   =   new   MailMessage();  
            MyMail.From   =   sFrom;  
            MyMail.To   =   sTo;  
            MyMail.Subject   =   sSubject;  
            MyMail.Body   =   sBody;  
            MyMail.Cc   =   sCc;  
            MyMail.Bcc   =   sBcc;  
            MyMail.UrlContentBase   =   sUrlContentBase;  
            MyMail.UrlContentLocation   =   sUrlContentLocation;  
   
                    if   (txtBodyEncoding.Text   ==   Encoding.UTF7.EncodingName)  
                          MyMail.BodyEncoding   =   Encoding.UTF7;  
                    else   if   (txtBodyEncoding.Text   ==   Encoding.UTF8.EncodingName)  
                          MyMail.BodyEncoding   =   Encoding.UTF8;  
                    else  
                          MyMail.BodyEncoding   =   Encoding.ASCII;  
   
            switch   (sBodyFormat.ToUpper())  
                    {  
                          case   "HTML":    
                                MyMail.BodyFormat   =   MailFormat.Html;  
                                break;  
                          default:    
                                MyMail.BodyFormat   =   MailFormat.Text;  
                                break;  
                    }  
                     
                    switch   (sPriority.ToUpper())  
                    {  
                          case   "HIGH":    
                                MyMail.Priority   =   MailPriority.High;  
                                break;  
                          case   "LOW":    
                                MyMail.Priority   =   MailPriority.Low;  
                                break;  
                          default:    
                                MyMail.Priority   =   MailPriority.Normal;  
                                break;  
                    }  
                     
                    //   Build   an   IList   of   mail   attachments.  
                    if   (sAttach   !=   "")  
                    {  
                          char[]   delim   =   new   char[]   {','};  
                          foreach   (string   sSubstr   in   sAttach.Split(delim))  
                          {  
                                MailAttachment   MyAttachment   =   new   MailAttachment(sSubstr);  
                                MyMail.Attachments.Add(MyAttachment);  
                          }  
                    }  
             
            SmtpMail.SmtpServer   =   sMailServer;  
            SmtpMail.Send(MyMail);  
  }  
  Top

17 楼shadow841112(孤风)回复于 2006-01-22 01:12:58 得分 0

但是有下面的error:  
   
  与服务器的传输连接失败。    
  说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。    
   
  异常详细信息:   System.Runtime.InteropServices.COMException:   与服务器的传输连接失败。    
   
  源错误:    
   
   
  行   35:   //SmtpMail.SmtpServer="lsg.moon.net";  
  行   36:                           SmtpMail.SmtpServer=   "www.sohu.com";  
  行   37:                           SmtpMail.Send(Mail);  
  行   38:      
  行   39:    
     
   
  源文件:   c:\inetpub\wwwroot\webapplication6\webform1.aspx.cs         行:   37    
   
  堆栈跟踪:    
   
   
  [COMException   (0x80040213):   与服务器的传输连接失败。  
  -----------------------------------------------------------------------------------  
  你的错误在于SMTP地址不对  
  SmtpMail.SmtpServer=   "www.sohu.com";  
  //SOHU的该是smtp.sohu.com建议去查,并不是www.sohu.comTop

18 楼langhaijian(asf)回复于 2006-01-23 16:46:10 得分 0

改了还是有同样的error:  
   
  MailMessage   Mail=new   MailMessage();  
          Mail.From="haijianlang@yahoo.com.cn";  
          Mail.To   ="haijianlang@yahoo.com.cn";  
  Mail.BodyFormat=MailFormat.Text;  
  Mail.Body   ="congratulation";  
  Mail.Subject   ="i   love   you   ";  
  Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",   "1");   //basic   authentication    
  Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername",   "haijianlang");   //set   your   username   here    
  Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword",   "198121");   //set   your   password   here    
  //SmtpMail.SmtpServer="lsg.moon.net";  
                          SmtpMail.SmtpServer=   "smtp.yahoo.com.cn";  
                          SmtpMail.Send(Mail);Top

19 楼langhaijian(asf)回复于 2006-01-23 16:46:22 得分 0

郁闷啊Top

相关问题

  • asp源代码!
  • 如何调试VCL源代码?
  • vb 串口调试软件 源代码
  • 查看asp源代码
  • 寻觅asp源代码
  • 100分求购一个能在局域网中实现收发邮件功能的ASP源代码
  • asp源代码象是乱码
  • 求商品展示的asp源代码
  • 求这个asp留言簿源代码!
  • 那里能找到ASP的源代码?

关键词

  • .net
  • asp.net
  • 邮件
  • 服务器
  • 密码
  • ojmailmessage
  • smtpmail
  • mail
  • mailobj
  • smtpserver

得分解答快速导航

  • 帖主:langhaijian
  • ALLsharps
  • jonas20

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo