请高手帮我看看为什么我的邮件不能发送?

时间:2022-04-28 18:09:05
请高手帮我看看这个邮件代码哪里有问题,为什么发不出邮件?如果高手有代码请发给我一下(我的E_MAIL:wd3w@163.com).我来参加学习一下.致谢!

前台代码:
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
        <br />
        <asp:TextBox ID="tbTag" runat="server"></asp:TextBox><br />
        <br />
        <asp:TextBox ID="tbAdv" runat="server" Height="72px" TextMode="MultiLine" Width="206px"></asp:TextBox><br />
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="发送" />&nbsp;</div>
    </form>
</body>
</html>

后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Net.Mail;
using System.Net.NetworkInformation;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        MailMessage mailMessage = new MailMessage();
        string strBody;

        mailMessage.From = new MailAddress("yaoshun@tontel.com.cn");
        mailMessage.To.Add("wd3w@163.com");
        mailMessage.Subject = "mail.tontel.com.cn";

        strBody = "<h2>" + 1 + "</h2><br>";
        strBody += "<h4>" + tbTag.Text + "</h4><br><hr><br>";
        strBody += "·" + tbAdv.Text;

        sendMail(mailMessage);
    }

    //SendMail
    private void sendMail(MailMessage mail)
    {
        SmtpClient smtpClient = new SmtpClient();
        smtpClient.EnableSsl = true;
        smtpClient.Host = "mail.tontel.com.cn";
        smtpClient.Port = 25;
        smtpClient.Credentials = new NetworkCredential("yaoshun@tontel.com.cn", "29127463");
        try
        {
            smtpClient.Send(mail);
            Label1.Text = "ok";
        }
        catch
        {
            Label1.Text = "false";
        }
    }
}

26 个解决方案

#1


 smtpClient.Credentials = new NetworkCredential("yaoshun", "29127463"); 
改为这个试试,asp.net发送邮件,需要验证时,只能用Email地址@以前的帐号,不能用全Email地址.
如果你的邮件一定要以整个email来做验证的话,只有建议用其他邮箱了,如sina等邮箱.

#2


1. 
smtpClient.Credentials = new NetworkCredential("yaoshun@tontel.com.cn", "29127463"); 
--------------------------------------
對於郵箱而言,yaoshun是帳號,而不是yaoshun@tontel.com.cn

2.
發送郵件之前,加一行代碼mailMessage.HtmlBody=strBody;

#3


更正一下
2. 
發送郵件之前,加如下代碼:
mailMessage.Body=strBody;
mailMessage.IsBodyHtml=true;

#4


两位老大:
    我按你们上面的说的方法修改了一下.但邮件还是发送不成功.高手再帮我看看,这个代码是什么问题.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Net.Mail;
using System.Net.NetworkInformation;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        MailMessage mailMessage = new MailMessage();
        string strBody;

        mailMessage.From = new MailAddress("yaoshun@tontel.com.cn");
        mailMessage.To.Add("wd3w@163.com");
        mailMessage.Subject = "mail.tontel.com.cn";

        strBody = "<h2>" + 1 + "</h2><br>";
        strBody += "<h4>" + tbTag.Text + "</h4><br><hr><br>";
        strBody += "·" + tbAdv.Text;

        mailMessage.Body = strBody;
        sendMail(mailMessage);
    }

    //SendMail
    private void sendMail(MailMessage mail)
    {
        SmtpClient smtpClient = new SmtpClient();
        smtpClient.EnableSsl = true;
        smtpClient.Host = "mail.tontel.com.cn";
        smtpClient.Port = 25;
        smtpClient.Credentials = new NetworkCredential("yaoshun", "29127463");
        try
        {            
            smtpClient.Send(mail);
            Label1.Text = "ok";
        }
        catch
        {
            Label1.Text = "false";
        }
    }
}

#5


把錯誤消息貼出來

#6


这句你加了吗?
mailMessage.IsBodyHtml=true;
我看不到哦````````````

#7


异常详细信息: System.Net.Mail.SmtpException: 服务器不支持安全连接。

源错误: 


行 45:         try
行 46:         {            
行 47:             smtpClient.Send(mail);
行 48:             Label1.Text = "ok";
行 49:         }
 
源文件: e:\ls\mail1\Default.aspx.cs    行: 47

谢谢黑马王子

#8


以下代码测试成功。需要SMTP支持,你的163帐号开通了SMTP功能
using System;
using System.Net;

namespace mail {
class app {
static void Main()
{
System.Net.Mail.SmtpClient client = new SmtpClient("smtp.163.com");
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("fdsa@163.com", "密码");
client.DeliveryMethod = SmtpDeliveryMethod.Network;

System.Net.Mail.MailMessage message = new MailMessage("fdsafd@163.com","4fdsa@qq.com", "test","<strong>test</strong>");
message.BodyEncoding = System.Text.Encoding.Default;
message.IsBodyHtml = true;
client.Send(message);
}
}
}

#9


把你代碼中的smtpClient.EnableSsl = true; 這一句刪除就好了。

#10


引用 7 楼 yaoshun1983 的回复:
异常详细信息: System.Net.Mail.SmtpException: 服务器不支持安全连接。 

源错误:  


行 45:         try 
行 46:         {             
行 47:             smtpClient.Send(mail); 
行 48:             Label1.Text = "ok"; 
行 49:         } 
  
源文件: e:\ls\mail1\Default.aspx.cs    行: 47 

谢谢黑马王子

服務器不支持SSL,但你代碼中設置EnableSsl為true,所以出錯

#11


///   <summary> 
                ///   发送邮件 
                ///   </summary> 
                ///   <param   name= "strSmtpServer "> smtp地址 </param> 
                ///   <param   name= "UserName "> 用户名 </param> 
                ///   <param   name= "Password "> 密码 </param> 
                ///   <param   name= "strFrom "> 发信人地址 </param> 
                ///   <param   name= "strto "> 收信人地址 </param> 
                ///   <param   name= "strSubject "> 邮件标题 </param> 
                ///   <param   name= "strBody "> 邮件正文 </param> 
                public   static   void   SendMail(string   strSmtpServer,   string   UserName,   string   Password,   string   strFrom,   string   strto,   string   strSubject,   string   strBody,   string   strFileName) 
                { 
                        //生成一个   使用SMTP发送邮件的客户端对象 
                        System.Net.Mail.SmtpClient   client   =   new   System.Net.Mail.SmtpClient(strSmtpServer); 

                        //表示以当前登录用户的默认凭据进行身份验证 
                        client.UseDefaultCredentials   =   true; 

          

                        //包含用户名和密码 
                        client.Credentials   =   new   System.Net.NetworkCredential(UserName,   Password); 

                          //指定如何发送电子邮件。 
                          //Network                                             电子邮件通过网络发送到   SMTP   服务器。     
                          //PickupDirectoryFromIis               将电子邮件复制到挑选目录,然后通过本地   Internet   信息服务   (IIS)   传送。     
                          //SpecifiedPickupDirectory           将电子邮件复制到   SmtpClient.PickupDirectoryLocation   属性指定的目录,然后由外部应用程序传送。     

                        client.DeliveryMethod   =   System.Net.Mail.SmtpDeliveryMethod.Network; 

                        //建立邮件对象   
                        System.Net.Mail.MailMessage   message   =   new   System.Net.Mail.MailMessage(strFrom,   strto,   strSubject,strBody); 
                        
                        //定义邮件正文,主题的编码方式 
                        message.BodyEncoding   =   System.Text.Encoding.GetEncoding( "gb2312 "); 
                        message.SubjectEncoding   =   System.Text.Encoding.GetEncoding( "gb2312 "); 
                      
                        //获取或设置一个值,该值指示电子邮件正文是否为   HTML。   
                        message.IsBodyHtml   =   false; 
                        
                        //指定邮件优先级 
          
                        message.Priority   =   System.Net.Mail.MailPriority.Normal; 

                        //添加附件 
                        //System.Web.Mail.MailAttachment   mailAttachment=new   System.Web.Mail.MailAttachment(@ "f:/baihe.txt ");   
                        if   (strFileName   !=   " "   &&   strFileName   !=   null) 
                        { 
                                Attachment   data   =   new   Attachment(strFileName); 
                                message.Attachments.Add(data); 
                        } 
                    
                        
                        //发件人身份验证,否则163   发不了 
                        client.Credentials   =     new   System.Net.NetworkCredential(strFrom,   Password); 

                        //发送 
                        client.Send(message); 
                } 
        }



2.0版本的  

你看看是不是你的防火墙之类给挡住了  


今后建议楼主发帖前,先搜索csdn一下。你这样问题,一搜一大把 


下面是1。1 的 

#region 发送邮件

        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="_UserName">用户名</param>
        /// <param name="_Mail">用户注册的电子邮件</param>
        /// <param name="_Pwd">用户登录密码</param>
        /// <returns>是否发送成功</returns>
        public static bool SendMail (string _UserName,string _Mail,string _Pwd)
        {
            string _adminMail = System.Configuration.ConfigurationSettings.AppSettings["AdminMail"].ToString();
            string _adminMailPwd = System.Configuration.ConfigurationSettings.AppSettings["AdminMailPwd"].ToString();
            string _adminMailSmtp = System.Configuration.ConfigurationSettings.AppSettings["AdminMailSMTP"].ToString();
            string _subject = System.Configuration.ConfigurationSettings.AppSettings["MailSubject"].ToString();
            string _body = System.Configuration.ConfigurationSettings.AppSettings["MailBody"].ToString();

            MailMessage mailObj = new MailMessage();
            mailObj.To = _Mail;
            mailObj.From = _adminMail;
        
            mailObj.Subject = _subject;//"您在投资基金网的注册信息";
            mailObj.Body = _body.Replace("[UserName]",_UserName).Replace("[Pwd]",_Pwd).Replace("[Br]","<br/>").Replace("[Nbsp]","&nbsp;");//"尊敬的用户:<br/>&nbsp;&nbsp;&nbsp;&nbsp;您好,您的注册信息如下<br/>用户名:" + _UserName + " 密码:" + _Pwd;
        
            mailObj.BodyFormat = MailFormat.Html;
 
            mailObj.Priority = MailPriority.High;

            SmtpMail.SmtpServer = _adminMailSmtp;
            //mailObj.Attachments.Add(new MailAttachment("c:\\swf\\000.bmp"));
            

            //string[] adminName = _adminMail.Split('@');
            ///////////////////////////////////FrameWork1.1
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
            ////设置验证用户名 
            //mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", adminName[0].ToString());
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", _adminMail);
            ////设置验证密码 
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", _adminMailPwd);
            //////////////////////////////////////////////

            SmtpMail.Send(mailObj);
            return true;
        }
        #endregion




或者参见  http://www.luckyegg.cn 

#12


我把smtpClient.EnableSsl = true删除了.但错误还在发生.错误如下:

邮箱不可用。 服务器响应为: Local user only or Authentication mechanism 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Net.Mail.SmtpFailedRecipientException: 邮箱不可用。 服务器响应为: Local user only or Authentication mechanism

源错误: 


行 46:         try
行 47:         {            
行 48:             smtpClient.Send(mail);
行 49:             Label1.Text = "ok";
行 50:         }

请高手帮忙解决,我需要你们指导。
 

#13


服务器需要身份验证


1.1 
 

 ///////////////////////////////////FrameWork1.1
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
            ////设置验证用户名 
            //mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", adminName[0].ToString());
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", _adminMail);
            ////设置验证密码 
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", _adminMailPwd);
            //////////////////////////////////////////////

2.0

 client.Credentials   =     new   System.Net.NetworkCredential(strFrom,   Password); 


#14


怪我太差.搞不明白啊.
我只希望各位高手帮我把我上面贴出来的前台和后台代码调试通.在下真的感激不尽.

#15


高手啊!
    请帮我调试一下上面的代码吧.我今天就在线等.
    致谢!

#16


参考下面的url,在.net1.X和.net2.0的版本:

http://www.blueshop.com.tw/board/show.asp?subcde=BRD200609100158553X4&fumcde=

#17


可惜是是VB.NET的代码.我现在需要C#版本的代码啊.

#19


搞了一两天就一个Asp.net(C#)发送邮件的代码也没搞好.
我在反思我自己,同时也在对CSDN进行反思了(为什么这个大个论坛就没有发一个能发邮件的代码呢?)
... ...

#20


引用 19 楼 yaoshun1983 的回复:
搞了一两天就一个Asp.net(C#)发送邮件的代码也没搞好. 
我在反思我自己,同时也在对CSDN进行反思了(为什么这个大个论坛就没有发一个能发邮件的代码呢?) 
... ...



确实应该反思一下自己。我给的那代码为什么没有试过?


我们公司都用那段代码,一年多了都没有问题。


难道让别人给你写完后再把代码发给你? 你干什么呢?

#21


引用 19 楼 yaoshun1983 的回复:
搞了一两天就一个Asp.net(C#)发送邮件的代码也没搞好. 
我在反思我自己,同时也在对CSDN进行反思了(为什么这个大个论坛就没有发一个能发邮件的代码呢?) 
... ...

不要怨天尢人,在你上論壇發貼求助的同時就應該做好得不到完美解答的準備。不是你發貼,別人就有義務幫你。更何況幫你的人不少。

談下你的主題,就代碼而言,其實發送郵件無非就這樣,到後來基本是OK的。但郵件發不出去的可能性很多,別光把目光局限在代碼上。
我現在懷疑兩點:
1. 確認郵箱確實在Mail Server上?
2. 你斷定mail.tontel.com.cn這臺mail server沒把你屏蔽掉?你是否發郵件過多,人家把你屏蔽了?

#22


換個郵箱換個smtp試試

#23


兄弟,用1.1版的吧。
呵呵。
我有帖子 才发的。你去看看 上以后调试好的。2.0版的有问题。
 用web.mail这个 namespace。
http://topic.csdn.net/u/20080321/09/91b4cf12-3ec1-4fd3-92ed-7c74375da80c.html

#24


非常感谢各位高手、朋友的指点帮助,我用的就是junzhang4008 大侠的代码。我的技术太菜需要学习,但现在确实要解决掉这个问题:
对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.UnauthorizedAccessException: 对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝。 

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。 

要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

源错误: 


行 66:         if (strFileName != " " && strFileName != null)
行 67:         {
行 68:             Attachment data = new Attachment(strFileName);
行 69:             message.Attachments.Add(data);
行 70:         }
 

源文件: e:\wwwroot\3CMarket\mail.aspx.cs    行: 68 
请各位朋友再帮帮忙。

#25


其实是行66  引号里面出现了空格

#26


junzhang4008的代码好。
参考
http://topic.csdn.net/u/20080319/23/a6eb012e-bba8-45f7-b43b-a1d14a8e624d.html

#1


 smtpClient.Credentials = new NetworkCredential("yaoshun", "29127463"); 
改为这个试试,asp.net发送邮件,需要验证时,只能用Email地址@以前的帐号,不能用全Email地址.
如果你的邮件一定要以整个email来做验证的话,只有建议用其他邮箱了,如sina等邮箱.

#2


1. 
smtpClient.Credentials = new NetworkCredential("yaoshun@tontel.com.cn", "29127463"); 
--------------------------------------
對於郵箱而言,yaoshun是帳號,而不是yaoshun@tontel.com.cn

2.
發送郵件之前,加一行代碼mailMessage.HtmlBody=strBody;

#3


更正一下
2. 
發送郵件之前,加如下代碼:
mailMessage.Body=strBody;
mailMessage.IsBodyHtml=true;

#4


两位老大:
    我按你们上面的说的方法修改了一下.但邮件还是发送不成功.高手再帮我看看,这个代码是什么问题.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Net.Mail;
using System.Net.NetworkInformation;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        MailMessage mailMessage = new MailMessage();
        string strBody;

        mailMessage.From = new MailAddress("yaoshun@tontel.com.cn");
        mailMessage.To.Add("wd3w@163.com");
        mailMessage.Subject = "mail.tontel.com.cn";

        strBody = "<h2>" + 1 + "</h2><br>";
        strBody += "<h4>" + tbTag.Text + "</h4><br><hr><br>";
        strBody += "·" + tbAdv.Text;

        mailMessage.Body = strBody;
        sendMail(mailMessage);
    }

    //SendMail
    private void sendMail(MailMessage mail)
    {
        SmtpClient smtpClient = new SmtpClient();
        smtpClient.EnableSsl = true;
        smtpClient.Host = "mail.tontel.com.cn";
        smtpClient.Port = 25;
        smtpClient.Credentials = new NetworkCredential("yaoshun", "29127463");
        try
        {            
            smtpClient.Send(mail);
            Label1.Text = "ok";
        }
        catch
        {
            Label1.Text = "false";
        }
    }
}

#5


把錯誤消息貼出來

#6


这句你加了吗?
mailMessage.IsBodyHtml=true;
我看不到哦````````````

#7


异常详细信息: System.Net.Mail.SmtpException: 服务器不支持安全连接。

源错误: 


行 45:         try
行 46:         {            
行 47:             smtpClient.Send(mail);
行 48:             Label1.Text = "ok";
行 49:         }
 
源文件: e:\ls\mail1\Default.aspx.cs    行: 47

谢谢黑马王子

#8


以下代码测试成功。需要SMTP支持,你的163帐号开通了SMTP功能
using System;
using System.Net;

namespace mail {
class app {
static void Main()
{
System.Net.Mail.SmtpClient client = new SmtpClient("smtp.163.com");
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("fdsa@163.com", "密码");
client.DeliveryMethod = SmtpDeliveryMethod.Network;

System.Net.Mail.MailMessage message = new MailMessage("fdsafd@163.com","4fdsa@qq.com", "test","<strong>test</strong>");
message.BodyEncoding = System.Text.Encoding.Default;
message.IsBodyHtml = true;
client.Send(message);
}
}
}

#9


把你代碼中的smtpClient.EnableSsl = true; 這一句刪除就好了。

#10


引用 7 楼 yaoshun1983 的回复:
异常详细信息: System.Net.Mail.SmtpException: 服务器不支持安全连接。 

源错误:  


行 45:         try 
行 46:         {             
行 47:             smtpClient.Send(mail); 
行 48:             Label1.Text = "ok"; 
行 49:         } 
  
源文件: e:\ls\mail1\Default.aspx.cs    行: 47 

谢谢黑马王子

服務器不支持SSL,但你代碼中設置EnableSsl為true,所以出錯

#11


///   <summary> 
                ///   发送邮件 
                ///   </summary> 
                ///   <param   name= "strSmtpServer "> smtp地址 </param> 
                ///   <param   name= "UserName "> 用户名 </param> 
                ///   <param   name= "Password "> 密码 </param> 
                ///   <param   name= "strFrom "> 发信人地址 </param> 
                ///   <param   name= "strto "> 收信人地址 </param> 
                ///   <param   name= "strSubject "> 邮件标题 </param> 
                ///   <param   name= "strBody "> 邮件正文 </param> 
                public   static   void   SendMail(string   strSmtpServer,   string   UserName,   string   Password,   string   strFrom,   string   strto,   string   strSubject,   string   strBody,   string   strFileName) 
                { 
                        //生成一个   使用SMTP发送邮件的客户端对象 
                        System.Net.Mail.SmtpClient   client   =   new   System.Net.Mail.SmtpClient(strSmtpServer); 

                        //表示以当前登录用户的默认凭据进行身份验证 
                        client.UseDefaultCredentials   =   true; 

          

                        //包含用户名和密码 
                        client.Credentials   =   new   System.Net.NetworkCredential(UserName,   Password); 

                          //指定如何发送电子邮件。 
                          //Network                                             电子邮件通过网络发送到   SMTP   服务器。     
                          //PickupDirectoryFromIis               将电子邮件复制到挑选目录,然后通过本地   Internet   信息服务   (IIS)   传送。     
                          //SpecifiedPickupDirectory           将电子邮件复制到   SmtpClient.PickupDirectoryLocation   属性指定的目录,然后由外部应用程序传送。     

                        client.DeliveryMethod   =   System.Net.Mail.SmtpDeliveryMethod.Network; 

                        //建立邮件对象   
                        System.Net.Mail.MailMessage   message   =   new   System.Net.Mail.MailMessage(strFrom,   strto,   strSubject,strBody); 
                        
                        //定义邮件正文,主题的编码方式 
                        message.BodyEncoding   =   System.Text.Encoding.GetEncoding( "gb2312 "); 
                        message.SubjectEncoding   =   System.Text.Encoding.GetEncoding( "gb2312 "); 
                      
                        //获取或设置一个值,该值指示电子邮件正文是否为   HTML。   
                        message.IsBodyHtml   =   false; 
                        
                        //指定邮件优先级 
          
                        message.Priority   =   System.Net.Mail.MailPriority.Normal; 

                        //添加附件 
                        //System.Web.Mail.MailAttachment   mailAttachment=new   System.Web.Mail.MailAttachment(@ "f:/baihe.txt ");   
                        if   (strFileName   !=   " "   &&   strFileName   !=   null) 
                        { 
                                Attachment   data   =   new   Attachment(strFileName); 
                                message.Attachments.Add(data); 
                        } 
                    
                        
                        //发件人身份验证,否则163   发不了 
                        client.Credentials   =     new   System.Net.NetworkCredential(strFrom,   Password); 

                        //发送 
                        client.Send(message); 
                } 
        }



2.0版本的  

你看看是不是你的防火墙之类给挡住了  


今后建议楼主发帖前,先搜索csdn一下。你这样问题,一搜一大把 


下面是1。1 的 

#region 发送邮件

        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="_UserName">用户名</param>
        /// <param name="_Mail">用户注册的电子邮件</param>
        /// <param name="_Pwd">用户登录密码</param>
        /// <returns>是否发送成功</returns>
        public static bool SendMail (string _UserName,string _Mail,string _Pwd)
        {
            string _adminMail = System.Configuration.ConfigurationSettings.AppSettings["AdminMail"].ToString();
            string _adminMailPwd = System.Configuration.ConfigurationSettings.AppSettings["AdminMailPwd"].ToString();
            string _adminMailSmtp = System.Configuration.ConfigurationSettings.AppSettings["AdminMailSMTP"].ToString();
            string _subject = System.Configuration.ConfigurationSettings.AppSettings["MailSubject"].ToString();
            string _body = System.Configuration.ConfigurationSettings.AppSettings["MailBody"].ToString();

            MailMessage mailObj = new MailMessage();
            mailObj.To = _Mail;
            mailObj.From = _adminMail;
        
            mailObj.Subject = _subject;//"您在投资基金网的注册信息";
            mailObj.Body = _body.Replace("[UserName]",_UserName).Replace("[Pwd]",_Pwd).Replace("[Br]","<br/>").Replace("[Nbsp]","&nbsp;");//"尊敬的用户:<br/>&nbsp;&nbsp;&nbsp;&nbsp;您好,您的注册信息如下<br/>用户名:" + _UserName + " 密码:" + _Pwd;
        
            mailObj.BodyFormat = MailFormat.Html;
 
            mailObj.Priority = MailPriority.High;

            SmtpMail.SmtpServer = _adminMailSmtp;
            //mailObj.Attachments.Add(new MailAttachment("c:\\swf\\000.bmp"));
            

            //string[] adminName = _adminMail.Split('@');
            ///////////////////////////////////FrameWork1.1
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
            ////设置验证用户名 
            //mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", adminName[0].ToString());
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", _adminMail);
            ////设置验证密码 
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", _adminMailPwd);
            //////////////////////////////////////////////

            SmtpMail.Send(mailObj);
            return true;
        }
        #endregion




或者参见  http://www.luckyegg.cn 

#12


我把smtpClient.EnableSsl = true删除了.但错误还在发生.错误如下:

邮箱不可用。 服务器响应为: Local user only or Authentication mechanism 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Net.Mail.SmtpFailedRecipientException: 邮箱不可用。 服务器响应为: Local user only or Authentication mechanism

源错误: 


行 46:         try
行 47:         {            
行 48:             smtpClient.Send(mail);
行 49:             Label1.Text = "ok";
行 50:         }

请高手帮忙解决,我需要你们指导。
 

#13


服务器需要身份验证


1.1 
 

 ///////////////////////////////////FrameWork1.1
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
            ////设置验证用户名 
            //mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", adminName[0].ToString());
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", _adminMail);
            ////设置验证密码 
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", _adminMailPwd);
            //////////////////////////////////////////////

2.0

 client.Credentials   =     new   System.Net.NetworkCredential(strFrom,   Password); 


#14


怪我太差.搞不明白啊.
我只希望各位高手帮我把我上面贴出来的前台和后台代码调试通.在下真的感激不尽.

#15


高手啊!
    请帮我调试一下上面的代码吧.我今天就在线等.
    致谢!

#16


参考下面的url,在.net1.X和.net2.0的版本:

http://www.blueshop.com.tw/board/show.asp?subcde=BRD200609100158553X4&fumcde=

#17


可惜是是VB.NET的代码.我现在需要C#版本的代码啊.

#18


#19


搞了一两天就一个Asp.net(C#)发送邮件的代码也没搞好.
我在反思我自己,同时也在对CSDN进行反思了(为什么这个大个论坛就没有发一个能发邮件的代码呢?)
... ...

#20


引用 19 楼 yaoshun1983 的回复:
搞了一两天就一个Asp.net(C#)发送邮件的代码也没搞好. 
我在反思我自己,同时也在对CSDN进行反思了(为什么这个大个论坛就没有发一个能发邮件的代码呢?) 
... ...



确实应该反思一下自己。我给的那代码为什么没有试过?


我们公司都用那段代码,一年多了都没有问题。


难道让别人给你写完后再把代码发给你? 你干什么呢?

#21


引用 19 楼 yaoshun1983 的回复:
搞了一两天就一个Asp.net(C#)发送邮件的代码也没搞好. 
我在反思我自己,同时也在对CSDN进行反思了(为什么这个大个论坛就没有发一个能发邮件的代码呢?) 
... ...

不要怨天尢人,在你上論壇發貼求助的同時就應該做好得不到完美解答的準備。不是你發貼,別人就有義務幫你。更何況幫你的人不少。

談下你的主題,就代碼而言,其實發送郵件無非就這樣,到後來基本是OK的。但郵件發不出去的可能性很多,別光把目光局限在代碼上。
我現在懷疑兩點:
1. 確認郵箱確實在Mail Server上?
2. 你斷定mail.tontel.com.cn這臺mail server沒把你屏蔽掉?你是否發郵件過多,人家把你屏蔽了?

#22


換個郵箱換個smtp試試

#23


兄弟,用1.1版的吧。
呵呵。
我有帖子 才发的。你去看看 上以后调试好的。2.0版的有问题。
 用web.mail这个 namespace。
http://topic.csdn.net/u/20080321/09/91b4cf12-3ec1-4fd3-92ed-7c74375da80c.html

#24


非常感谢各位高手、朋友的指点帮助,我用的就是junzhang4008 大侠的代码。我的技术太菜需要学习,但现在确实要解决掉这个问题:
对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.UnauthorizedAccessException: 对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝。 

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。 

要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

源错误: 


行 66:         if (strFileName != " " && strFileName != null)
行 67:         {
行 68:             Attachment data = new Attachment(strFileName);
行 69:             message.Attachments.Add(data);
行 70:         }
 

源文件: e:\wwwroot\3CMarket\mail.aspx.cs    行: 68 
请各位朋友再帮帮忙。

#25


其实是行66  引号里面出现了空格

#26


junzhang4008的代码好。
参考
http://topic.csdn.net/u/20080319/23/a6eb012e-bba8-45f7-b43b-a1d14a8e624d.html