try
            {
                SmtpClient smtp = new SmtpClient("smtp.sina.cn");
                //smtp.Host = "smtp.sina.com";
                smtp.Port = 25;
                smtp.EnableSsl = true;
                smtp.UseDefaultCredentials = false;
                smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "111111");
                smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis;
                MailMessage mymail = new MailMessage();
               
                mymail.From = new MailAddress("[email protected]");
                mymail.To.Add(new MailAddress("[email protected]"));
                mymail.Subject = "hello";
                mymail.IsBodyHtml = true;
                mymail.Body = "http://www.baidu.com";
                                
                smtp.Send(mymail);
                
            }
            catch(Exception ex)
            {
                TextBox1.Text = ex.Message.ToString();
            }
报错信息:Failure sending mail.
求大神清楚解释

解决方案 »

  1.   

    http://www.cnblogs.com/TianFang/archive/2005/12/12/295641.html
      

  2.   

     我在代码中写了
    SmtpClient smtp = new SmtpClient("smtp.sina.cn");
      //smtp.Host = "smtp.sina.com";
      smtp.Port = 25;
      smtp.EnableSsl = true;
      smtp.UseDefaultCredentials = false;
      smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "111111");
    还不行吗?
      

  3.   

    在代码里写不行的,你还需要配置webconfig才行
      

  4.   

    这是我的,你对比一下。    /// <summary>
        /// 发送Email
        /// </summary>
        /// <param name="to">接收Email地址</param>
        /// <param name="subject">发送标题</param>
        /// <param name="body">发送内容</param>
        /// <param name="smtp">发送Email smtp 地址</param>
        /// <param name="name">发送Email名称</param>
        /// <param name="password">发送Email密码</param>
        /// <param name="email">发送Email地址</param>
        public static void SendMail(string to, string subject, string body, string smtp, string name, string password, string email, HttpResponse response)
        {
            MailMessage mail = new MailMessage();
            mail.To.Add(to);
            mail.Subject = subject;
            mail.Body = body;
            mail.IsBodyHtml = true;
            SmtpClient client = new SmtpClient();
            client.Host = smtp;
            client.UseDefaultCredentials = true;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.Credentials = new System.Net.NetworkCredential(name, password);
            mail.From = new MailAddress(email, subject);
            try
            {
                client.Send(mail);
            }
            catch
            {
                
            }
        }
      

  5.   

    http://hi.baidu.com/lxxgfc/blog/item/75e2a0d8616f2c4dcdbf1a91.html
      

  6.   

    using System.Net.Mail;public void Send()
            {
     //请自己看下面的核心代码
                  SmtpClient client = new SmtpClient("邮件服务器",端口
                client.UseDefaultCredentials = false;
                client.Credentials = new System.Net.NetworkCredential("登陆名","密码"
                client.EnableSsl = false;
                MailAddress from = new MailAddress("发件人地址", "发件人姓名");
                MailAddress to = new MailAddress("收件人地址");
                MailMessage message = new MailMessage(from, to);
                message.Subject = "邮件标题";
                message.Body = "邮件内容";
                message.IsBodyHtml = true;//是否以HTML格式发送
                try
                {
                    client.Send(message);//发送
                    IsSent = true;
                }
                catch
                {
                    IsSent = false;
                }
            }//以上代码我公司正在使用中,三四个站都正常,请楼主自己修正封装好,注意,代表发件邮箱一定要开通Smtp功能,很多网站的邮箱都默认关闭该功能的
      

  7.   

    命名空间System.net.mail和System.web.mail有什么区别
      

  8.   

    收件人和发件人的邮箱类型要一样。。比如你的发件人是QQ,你的收件人也要是QQ邮箱
      

  9.   

    web.config 中要配这个发信人的邮箱、用户和密码吧。
    <system.net>
        <mailSettings>
          <smtp  deliveryMethod="Network"   from="[email protected]">
            <network host="smtp.sohu.com" defaultCredentials ="false"
                 userName="UserName"   password="User'sPSW" port="25"/>
          </smtp>
        </mailSettings>
      </system.net>
      

  10.   

    因为在你代码方面没有明显示错误,给你说几个可能的原因吧,你自己先排查一下。第一,防火墙的相应端口不是打开了.第二,你用的是sina的邮箱,而且启用了SSL,我感觉这个25端口号可能是不对的,你最好去SINA那边核对下。第三,看你的自己ISP是不是封掉这个发邮件的方式,我自己就碰过,DSL的就不行,上传到网站上就可以用了,开发和网站用的是两个ISP。
      

  11.   

    把try...catch去掉  调试  看看哪句话出的问题
      

  12.   

    其实这个问题,你可以这样试下,启动ssl加密,改端口为587应会成功的
      

  13.   

    //建立一个类sendEmail.cs代码为:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Text;
    using System.Net.Mail;
    using System.Net;/// <summary>
    ///sendEmail 的摘要说明
    /// </summary>
    public class sendEmail
    {
    public sendEmail()
    {
    //
    //TODO: 在此处添加构造函数逻辑
    //
    }
        /// <summary>
        /// 向用户发送邮件
        /// </summary>
        /// <param name="receiveUser">接收邮件的用户</param>
        /// <param name="sendUser">发送者</param>
        /// <param name="sendusername">发送者的邮箱登陆名</param>
        /// <param name="userpassword">发送者的登陆密码</param>
        /// <param name="sendTitle">发送标题</param>
        /// <param name="sendContent">发送的内容</param>
        /// <returns></returns>
        public void sendMail(string receiveUser, string sendUser, string sendusername, string userpassword, string sendTitle, string sendContent)
        {
           
                MailAddress to = new MailAddress(receiveUser);//接收者邮箱    
                MailAddress from = new MailAddress(sendUser);//发送者邮箱    
                System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(from, to);
                //mail.To.Add("[email protected]");//添加接收者                mail.Subject = sendTitle;
                mail.IsBodyHtml = true;
                mail.Body = sendContent;
                SmtpClient client = new SmtpClient();
                client.Host = "smtp.163.com";//设置发送者邮箱对应的smtpserver    
                client.UseDefaultCredentials = false;
                client.Credentials = new NetworkCredential(sendusername, userpassword);//设置发送者邮箱对应的username和password    
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                client.Send(mail);
          
                }}//btn事件
            sendEmail se = new sendEmail();
           // se.sendMail("[email protected]","wj","zhao88","9523","您好测试","测试中");
            se.sendMail("[email protected]", "[email protected]", "lie_a", "8088", "千机购物重设密码信", "aa");
            System.Windows.Forms.MessageBox.Show("发送成功");//引用空间名:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Text;
    using System.Net.Mail;
    using System.Net;
      

  14.   

    楼主你不是吧?你怀疑我的代码?我公司四个商业站都用我这代码,测试N遍了,没问题:你在复制时,请注意别修改了下面这两个属性的顺序:SmtpClient client = new SmtpClient("邮件服务器",端口);
      client.UseDefaultCredentials = false; //这个属性必须要放在这里配置,不能放在后面
      client.Credentials = new System.Net.NetworkCredential("登陆名","密码");
      client.EnableSsl = false; //这个属性也要放在这个位置进行配置,不能放在别的地方//如果这些地方你都正确配置了,那么,请看一下14楼的说法,发信人与你的代理服务邮箱必须是同一个邮箱才得,这点之前我忘了说了//我建议你使用QQ里的那个自带邮箱,手动去开通它的SMTP发信功能后,硬编码调试,QQ邮箱绝对可行,我试过,不行你来砍我