首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于邮件发送,该怎么处理

2013-11-01 
关于邮件发送用C#代码发送邮件,试了网上找的很多代码,每次都是“与服务器的传输连接失败,是不是还有什么地

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

    //        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("happy09li2@126.com", "测试是否可以发送邮箱" + 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 = "happy09li@126.com"; //SMTP服务帐号
            strPwd = "********"; //SMTP服务密码
            strFrom = "happy09li@126.com"; //发送方邮件地址
            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;
            }
        }


[解决办法]

        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("Daniel_xiong@szgalaxy.com");
            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@163.com", "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);
            }
        }

[解决办法]
引用:
还是只能用新浪的邮箱发送.....


如果是QQ邮箱的话需要设置SMTP服务开启

在邮箱->设置->账户 下开启SMTP服务

同样gmail的邮箱也需要设置
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

还是只能用新浪的邮箱发送.....


如果是QQ邮箱的话需要设置SMTP服务开启

在邮箱->设置->账户 下开启SMTP服务

同样gmail的邮箱也需要设置


之前已经都对163和QQ邮箱设置了,刚又试了一次,还是不行.....

楼上的仁兄说的正确,但代码里面还忽略了一点,发送的时候要指定发送的端口。PS:读取邮件的端口和发送邮件的端口也不同。

热点排行