您的位置:首页 > 编程语言 > C#

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

2014-11-06 16:12 465 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: