当前位置:编程学习 > C#/ASP.NET >>

关于邮件发送的问题

一个简单的发送,但是就是不成功!
 ////设置发件人信箱,及显示名字
        MailAddress from = new MailAddress(user.Email);
        //设置收件人信箱,及显示名字
        MailAddress to = new MailAddress(ToNote.Text);
        //创建一个MailMessage对象
        MailMessage oMail = new MailMessage(from, to);

        oMail.Subject = Theme.Text; //邮件标题
        oMail.Body = Content.Text; //邮件内容

        oMail.IsBodyHtml = true; //指定邮件格式,支持HTML格式
        oMail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");//邮件采用的编码
        oMail.Priority = MailPriority.High;//设置邮件的优先级为高

        //发送邮件服务器
        SmtpClient client = new SmtpClient();
        client.Host = "smtp.126.com"; //指定邮件服务器
        client.Credentials = new NetworkCredential(user.Email,user.Pwd);//指定服务器邮件,及密码

        //发送
        try
        {
            client.Send(oMail); //发送邮件
            Label1.Text = "恭喜你!邮件发送成功。";
        }
        catch
        {
            Label1.Text = "邮件发送失败,检查网络及信箱是否可用。";
        }

        oMail.Dispose(); //释放资源

        Table1.Visible = false;
        Table2.Visible = true;

直接每次都是邮件发送失败,检查网络及信箱是否可用 --------------------编程问答-------------------- client.Host = "smtp.126.com"; //指定邮件服务器
126不允许这样的方式连接吧? --------------------编程问答--------------------  我来学习 --------------------编程问答-------------------- client.Send(oMail); //发送邮件
看不到你这个方法是怎么写的,把client.Host = "smtp.126.com"; 换成你公司自己的邮件服务器或者任意一个允许这种方式登录的服务器看看

如果可以的话,就是126不让这么发 --------------------编程问答-------------------- client.Send(oMail); 这句设置断点,然后按F11跟踪进去,用F10一步步看执行情况,看是在哪句出问题
据我经验多半是smtp.126.com的问题 --------------------编程问答--------------------

using System.Web.Mail;

 /// <summary>
        /// 发送邮件的方法
        /// </summary>
        /// <param name="toEmail">邮件接收地址</param>
        /// <param name="fromEmail">邮件发送地址</param>
        /// <param name="subject">邮件主题</param>
        /// <param name="body">邮件内容</param>
        /// <param name="userName">发送邮件用户名</param>
        /// <param name="password">发送邮件密码</param>
        /// <param name="smtpHost">smtp服务器</param>
        public void SendEmail(string toEmail, string fromEmail, string subject, string body, string userName, string password, string smtpHost)
        {
            //设置邮件发送对象
            MailMessage mailObj = new MailMessage();
            // 设置邮件的发送地址
            mailObj.From = fromEmail;
            //设置邮件的接收地址
            mailObj.To = toEmail;
            //设置邮件发送的主题
            mailObj.Subject = subject;
            //设置邮件发送的内容
            mailObj.Body = body;
            // html格式的邮件
            mailObj.BodyFormat = MailFormat.Html;
            // 设置为高级优先权
            mailObj.Priority = System.Web.Mail.MailPriority.High;
            //验证 
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", userName); //用户名  
            mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password); //密码  
            //使用SmtpMail对象发送邮件
            SmtpMail.SmtpServer = smtpHost;
            SmtpMail.Send(mailObj);
        }

--------------------编程问答--------------------  写一个事件看看返回的信息是什么?
 client.SendCompleted += new 
            SendCompletedEventHandler(SendCompletedCallback);
--------------------编程问答--------------------         /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="priority">邮件优先级</param>
        /// <param name="smtp">邮件Smtp服务器</param>
        /// <param name="account">邮件账号</param>
        /// <param name="password">邮件密码</param>
        /// <param name="nick">邮件昵称</param>
        /// <param name="to">收件人</param>
        /// <param name="cc">抄送人</param>
        /// <param name="bcc">密件抄送人</param>
        /// <param name="subject">主题</param>
        /// <param name="body">内容</param>
        public static void SendMail_(MailPriority priority, string smtp, string account, string password, string nick, List<string> to, List<string> cc, List<string> bcc, string subject, string body)
        {
            //定义新电子邮件
            MailMessage eMailMessage = new MailMessage();

            //优先级
            eMailMessage.Priority = priority;

            //smtp服务器
            SmtpClient mSmtpClient = new SmtpClient(smtp);

            //账号,密码
            mSmtpClient.Credentials = new System.Net.NetworkCredential(account, password);

            //发件人
            eMailMessage.From = new MailAddress(account, nick);

            //收件人
            if (to != null)
            {
                for (int i = 0; i < to.Count(); i++)
                {
                    eMailMessage.To.Add(new MailAddress(to[i]));
                }
            }

            //抄送人
            if (cc != null)
            {
                for (int j = 0; j < cc.Count(); j++)
                {
                    eMailMessage.CC.Add(new MailAddress(cc[j]));
                }
            }

            //密件抄送人
            if (bcc != null)
            {
                for (int k = 0; k < cc.Count(); k++)
                {
                    eMailMessage.Bcc.Add(new MailAddress(bcc[k]));
                }
            }

            //主题
            eMailMessage.Subject = subject;

            //内容
            eMailMessage.Body = body;
            eMailMessage.IsBodyHtml = true;

            //发送
            mSmtpClient.Send(eMailMessage);
        }
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,