用C#代码发送邮件,试了网上找的很多代码,每次都是“与服务器的传输连接"失败,是不是还有什么地方需要配置啊,望大神解答,求求求!!!!

解决方案 »

  1.   

    光有代码不行,得配置好smtp服务器。
      

  2.   

        //        MailAttachment:与邮件附件有关的对象类
            //MailMessage :邮件主体
            //SmtpMail :负责发送邮件的SMTP协议。
            //属性列表:
            //MailEncoding :邮件的编码(Base64,UUEncode) 
            //MailFormat :邮件的格式(Html超文本格式,Text纯文本格式)
            //MailPriority :邮件优先级(High, Medium, Low)        //        Attachments :邮件附件
            //Bcc :暗送地址
            //Body :邮件主体
            //BodyFormat :邮件格式(html,text)
            //Cc :抄送地址
            //From :发信人地址
            //Priority :邮件优先级(High, Medium,Low)
            //Subject :邮件主题
            //To :接收人地址
            //UrlContentBase :在HTML格式邮件中的URL编码方式
            //UrlContentLocation:邮件信息的优先级(High, Medium,Low)        private void button1_Click(object sender, EventArgs e)
            {
                sendmail("[email protected]", "测试是否可以发送邮箱" + DateTime.Now, "邮件发送成功!");
            }        static string strHost = String.Empty;
            static string strAccount = String.Empty;
            static string strPwd = String.Empty;
            static string strFrom = String.Empty;
            /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="to">接收方邮件地址</param>
            /// <param name="title">邮件标题</param>
            /// <param name="content">邮件正文内容</param>
            public static bool sendmail(string to, string title, string content)
            {
                strHost = "pop3.126.com"; //STMP服务器地址
                strAccount = "[email protected]"; //SMTP服务帐号
                strPwd = "********"; //SMTP服务密码
                strFrom = "[email protected]"; //发送方邮件地址
                SmtpClient _smtpClient = new SmtpClient();
                _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
                _smtpClient.Host = strHost; ;//指定SMTP服务器
                _smtpClient.Credentials = new System.Net.NetworkCredential(strAccount, strPwd);//用户名和密码
                MailMessage _mailMessage = new MailMessage(strFrom, to);
                _mailMessage.Subject = title;//主题
                _mailMessage.Body = content;//内容
                _mailMessage.BodyEncoding = System.Text.Encoding.UTF8;//正文编码
                _mailMessage.IsBodyHtml = true;//设置为HTML格式
                _mailMessage.Priority = MailPriority.Low;//优先级            try
                {
                    _smtpClient.Send(_mailMessage);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
      

  3.   

    试了,还是不能成功发送,是需要在哪里配置STMP服务器么????
      

  4.   


            public static void sendEmail(List<string> receiveNames,string title,string content)
            {
                System.Net.Mail.MailMessage mailMsg = new System.Net.Mail.MailMessage();
                if (String.IsNullOrEmpty(content)) return;//没内容则不发送
                mailMsg.From = new MailAddress("[email protected]");
                if (receiveNames == null) return;
                foreach (string name in receiveNames)
                {
                    mailMsg.To.Add(name);
                }
                mailMsg.Subject = title;
                mailMsg.Body = content;
                mailMsg.BodyEncoding = Encoding.UTF8;
                mailMsg.IsBodyHtml = true;
                mailMsg.Priority = System.Net.Mail.MailPriority.High;            SmtpClient smtp = new SmtpClient();
                smtp.Credentials = new NetworkCredential("[email protected]", "pwd");
                smtp.Port = 25; // Gmail 使用 465 和 587 端口 
                smtp.Host = "smtp.163.com";
                smtp.EnableSsl = false; // 如果使用GMail,则需要设置为true 
                try
                {
                    smtp.Send(mailMsg);
                }
                catch (SmtpException ex)
                {
                    Prj.Log.Error("Error", ex);
                }
            }
      

  5.   


    如果是QQ邮箱的话需要设置SMTP服务开启在邮箱->设置->账户 下开启SMTP服务同样gmail的邮箱也需要设置
      

  6.   


    如果是QQ邮箱的话需要设置SMTP服务开启在邮箱->设置->账户 下开启SMTP服务同样gmail的邮箱也需要设置之前已经都对163和QQ邮箱设置了,刚又试了一次,还是不行.....
      

  7.   


    如果是QQ邮箱的话需要设置SMTP服务开启在邮箱->设置->账户 下开启SMTP服务同样gmail的邮箱也需要设置之前已经都对163和QQ邮箱设置了,刚又试了一次,还是不行.....
    楼上的仁兄说的正确,但代码里面还忽略了一点,发送的时候要指定发送的端口。PS:读取邮件的端口和发送邮件的端口也不同。
      

  8.   

    那就看一下指定IP或者IIS的SMTP服务有没配置好#2跟#5的代码都可以的,看不出别的问题
      

  9.   

    是的,2楼和5楼的代码用新浪邮箱都是能发送成功的,能发成功,IIS的SMTP服务 配置还有问题么?另外 指定IP的配置是什么意思?能否具体点,谢谢!
      

  10.   

    是的,2楼和5楼的代码用新浪邮箱都是能发送成功的,能发成功,IIS的SMTP服务 配置还有问题么?另外 指定IP的配置是什么意思?能否具体点,谢谢!本机是否固定的IP地址
    在 IIS 6.0 中安装和配置 SMTP 虚拟服务器
      

  11.   

    是的,2楼和5楼的代码用新浪邮箱都是能发送成功的,能发成功,IIS的SMTP服务 配置还有问题么?另外 指定IP的配置是什么意思?能否具体点,谢谢!本机是否固定的IP地址
    在 IIS 6.0 中安装和配置 SMTP 虚拟服务器
    用新浪的邮箱有发送成功,应该表示IIS的SMTP服务就有安装吧?另外,用QQ、163这些邮箱需要配置虚拟服务器么?
      

  12.   

    是的,2楼和5楼的代码用新浪邮箱都是能发送成功的,能发成功,IIS的SMTP服务 配置还有问题么?另外 指定IP的配置是什么意思?能否具体点,谢谢!本机是否固定的IP地址
    在 IIS 6.0 中安装和配置 SMTP 虚拟服务器
    用新浪的邮箱有发送成功,应该表示IIS的SMTP服务就有安装吧?另外,用QQ、163这些邮箱需要配置虚拟服务器么?因为你的错误信息是与服务器的连接失败了
    所以服务器的设置关系比较大其他的只能自己看看了,本身邮箱问题网络设置问题等
      

  13.   

    是的,2楼和5楼的代码用新浪邮箱都是能发送成功的,能发成功,IIS的SMTP服务 配置还有问题么?另外 指定IP的配置是什么意思?能否具体点,谢谢!本机是否固定的IP地址
    在 IIS 6.0 中安装和配置 SMTP 虚拟服务器
    用新浪的邮箱有发送成功,应该表示IIS的SMTP服务就有安装吧?另外,用QQ、163这些邮箱需要配置虚拟服务器么?因为你的错误信息是与服务器的连接失败了
    所以服务器的设置关系比较大其他的只能自己看看了,本身邮箱问题网络设置问题等
    虽然没有解决,不过还是谢谢你!