C#中利用SMTP邮件服务器发送邮件

SMTP邮件服务器发送邮件(C#)


今天从网上学习C#发送邮件可是用QQ邮箱时就是不行,后来换成Sina邮箱就可以了

然后发现QQ stmp的端口有465和587两个,


个人测试后发现只有587端口可行,现将实现的方法记录如下

首先定义发送的用户类

 class EmailUser
    {
        //发件人地址
        public string Address { get; set; }

        //显示名称
        public string DisplayName { get; set; }

        //收件人地址
        public string EmailTo { get; set; }

        //邮件标题
        public string Subject { get; set; }

        //邮件内容 
        public string EmailBody { get; set; }

        //发件人姓名(邮箱名)
        public string UserName { get; set; }

        //发件人密码(邮箱密码)
        public string Password { get; set; } 
    }

两种发送的方式如下:

1.QQ:


class Send
    {
        private static int emailPort = 587;
        private static string emailHost = "smtp.qq.com"; 
        public string SendEmail(EmailUser emailObj)
        { 
            MailMessage message = new MailMessage();
            message.From = new MailAddress(emailObj.Address, emailObj.DisplayName, System.Text.Encoding.UTF8);//发件人地址(可以随便写),发件人姓名,编码
            message.To.Add(emailObj.EmailTo);
            message.Subject = emailObj.Subject;//邮件标题   
            message.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码   
            message.Body = emailObj.EmailBody;//邮件内容   
            message.BodyEncoding = System.Text.Encoding.UTF8;//邮件  
            message.IsBodyHtml = true;
            message.Priority = MailPriority.Normal;
            SmtpClient client = new SmtpClient();
            client.Port = emailPort;//使用的端口   
            client.Host = emailHost;
            client.Credentials = new System.Net.NetworkCredential(emailObj.UserName, emailObj.Password);
            client.EnableSsl = true;//经过ssl加密(本人测试时发现这里为true才可发送) 
            object userState = message; 
            try
            { 
                client.Send(message); 
                return "Send Email Success!";
            }
            catch (System.Net.Mail.SmtpException ex)
            { 
                return ex.Message;
            }  
        }  
    }


2.Sina

 class Send
    {
        private static int emailPort = 25;
        private static string emailHost = "smtp.sina.com"; 
        public string SendEmail(EmailUser emailObj)
        { 
            MailMessage message = new MailMessage();
            message.From = new MailAddress(emailObj.Address, emailObj.DisplayName, System.Text.Encoding.UTF8);//发件人地址(可以随便写),发件人姓名,编码
            message.To.Add(emailObj.EmailTo);
            message.Subject = emailObj.Subject;//邮件标题   
            message.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码   
            message.Body = emailObj.EmailBody;//邮件内容   
            message.BodyEncoding = System.Text.Encoding.UTF8;//邮件  
            message.IsBodyHtml = true;
            message.Priority = MailPriority.Normal;
            SmtpClient client = new SmtpClient();
            client.Port = emailPort;//使用的端口   
            client.Host = emailHost;
            client.Credentials = new System.Net.NetworkCredential(emailObj.UserName, emailObj.Password); 
            object userState = message; 
            try
            { 
                client.Send(message); 
                return "Send Email Success!";
            }
            catch (System.Net.Mail.SmtpException ex)
            { 
                return ex.Message;
            }  
        }  
    }



这两种方式主要是邮件服务器地址和端口不同


资源下载地址:http://download.csdn.net/detail/chr23899/8128663

你可能感兴趣的:(邮件,C#,smtp,邮件服务器)