`
yeak2001
  • 浏览: 101083 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP

阅读更多
(转)C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP
通过.Net FrameWork 2.0下提供的“System.Net.Mail”可以轻松的实现,本文列举了3种途径来发送:

1.通过Localhost;
2.通过普通SMTP;
3.通过SSL的SMTP;

下面一个一个来说:

1.通过LocalHost
public void SendMailLocalhost() 
{ 
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); 
msg.To.Add("a@a.com"); 
msg.To.Add("b@b.com"); 
/* msg.To.Add("b@b.com"); 
* msg.To.Add("b@b.com"); 
* msg.To.Add("b@b.com");可以发送给多人 
*/ 
msg.CC.Add(c@c.com); 
/* 
* msg.CC.Add("c@c.com"); 
* msg.CC.Add("c@c.com");可以抄送给多人 
*/ 
msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8); 
/* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/ 
msg.Subject = "这是测试邮件";//邮件标题 
msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码 
msg.Body = "邮件内容";//邮件内容 
msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 
msg.IsBodyHtml = false;//是否是HTML邮件 
msg.Priority = MailPriority.High;//邮件优先级 

SmtpClient client = new SmtpClient(); 
client.Host = "localhost"; 
object userState = msg; 
try 
{ 
client.SendAsync(msg, userState); 
//简单一点儿可以client.Send(msg); 
MessageBox.Show("发送成功"); 
} 
catch (System.Net.Mail.SmtpException ex) 
{ 
MessageBox.Show(ex.Message, "发送邮件出错"); 
} 
} 

2.通过普通SMTP
public void SendMailUseZj() 
{ 
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); 
msg.To.Add(a@a.com); 
msg.To.Add(b@b.com); 
/* 
* msg.To.Add("b@b.com"); 
* msg.To.Add("b@b.com"); 
* msg.To.Add("b@b.com");可以发送给多人 
*/ 
msg.CC.Add("c@c.com"); 
/* 
* msg.CC.Add("c@c.com"); 
* msg.CC.Add("c@c.com");可以抄送给多人 
*/ 
msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8); 
/* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/ 
msg.Subject = "这是测试邮件";//邮件标题 
msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码 
msg.Body = "邮件内容";//邮件内容 
msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 
msg.IsBodyHtml = false;//是否是HTML邮件 
msg.Priority = MailPriority.High;//邮件优先级 

SmtpClient client = new SmtpClient(); 
client.Credentials = new System.Net.NetworkCredential("username@zj.com", "userpass"); 
//在zj.com注册的邮箱和密码 
client.Host = "smtp.zj.com"; 
object userState = msg; 
try 
{ 
client.SendAsync(msg, userState); 
//简单一点儿可以client.Send(msg); 
MessageBox.Show("发送成功"); 
} 
catch (System.Net.Mail.SmtpException ex) 
{ 
MessageBox.Show(ex.Message, "发送邮件出错"); 
} 
}

上述方法不适用于所有SMTP,经测试zj.com可以,而smtp.163.com不行


3.通过SSL的SMTP
public void SendMailUseGmail() 
{ 
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); 
msg.To.Add(a@a.com); 
msg.To.Add(b@b.com); 
/* 
* msg.To.Add("b@b.com"); 
* msg.To.Add("b@b.com"); 
* msg.To.Add("b@b.com");可以发送给多人 
*/ 
msg.CC.Add(c@c.com); 
/* 
* msg.CC.Add("c@c.com"); 
* msg.CC.Add("c@c.com");可以抄送给多人 
*/ 
msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8); 
/* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/ 
msg.Subject = "这是测试邮件";//邮件标题 
msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码 
msg.Body = "邮件内容";//邮件内容 
msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 
msg.IsBodyHtml = false;//是否是HTML邮件 
msg.Priority = MailPriority.High;//邮件优先级 
SmtpClient client = new SmtpClient(); 
client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password"); 
//上述写你的GMail邮箱和密码 
client.Port = 587;//Gmail使用的端口 
client.Host = "smtp.gmail.com"; 
client.EnableSsl = true;//经过ssl加密 
object userState = msg; 
try 
{ 
client.SendAsync(msg, userState); 
//简单一点儿可以client.Send(msg); 
MessageBox.Show("发送成功"); 
} 
catch (System.Net.Mail.SmtpException ex) 
{ 
MessageBox.Show(ex.Message, "发送邮件出错"); 
} 
}

通过Gmail来发送邮件,成功率极高,几乎都可以发到,推荐使用。
分享到:
评论
1 楼 solen 2018-09-03  
Gmail错误:SMTP服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.5.1需要验证
The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at

https://www.google.com/settings/security/lesssecureapps
https://myaccount.google.com/security#connectedapps
如果出现 5.5.1 Authentication Required 请打开此链接进行 启用

相关推荐

    C# SMTP 匿名发送邮件解决方案

    前段时间公司有项目需要使用C#的SMTP 发邮件功能,在网上搜索了下,网上没有一个完整的解决方案,都是东说语句西说一句,几乎扯淡,对于我们这些伟大的程序员来说,就是完整的解决版本,所以直接上代码是最现实。...

    C# socket smtp 邮件发送(支持SSL)

    C# socket smtp 邮件发送(支持SSL)源码

    C# 基于SMTP协议和SOCKET发送邮件及附件

    C# 基于SMTP协议和SOCKET发送邮件及附件。 在WIN7的VS2010环境下编译测试OK。

    C#阿里云发送SMTP邮件失败

    今天在测试邮件功能的时候,发现明明在本地发邮件功能可以正常使用的,但是放到了阿里云服务器上,就发送失败。报错信息如下:System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets....

    C#邮件发送系统C#邮件发送系统

    C#邮件发送系统C#邮件发送系统C#邮件发送系统C#邮件发送系统C#邮件发送系统C#邮件发送系统C#邮件发送系统C#邮件发送系统C#邮件发送系统C#邮件发送系统C#邮件发送系统C#邮件发送系统C#邮件发送系统C#邮件发送系统C#...

    c#实现SMTP发送邮件功能

    c#实现SMTP发送邮件功能,可以发送,抄送给多人,并可以发送附件。

    C#下通过TLS发送邮件

    公司邮件系统更新,代码中需要通过tls验证后发送邮件,有相同需求的朋友可参考本例。

    C# SMTP 发送邮件

    C# SMTP 发送邮件 测试了:163邮件,Gmail邮件,Hotmail邮件

    C#发送邮件

    C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件C#发送邮件...

    C#使用163的SMTP服务器发送邮件

    C#使用163的SMTP服务器发送邮件。C#使用163的SMTP服务器发送邮件

    发送邮件发送,先提一下SMTP

    与(一)的主要区别在于:1.SMTP的不同,2.objMailMessage.From中本方法可以随便填写,但是(一)中别随便填写那么利用ASP.NET(C#)发送邮件的核心代码如下: /核心代码开始 using System.Web.Mail; MailMessage ...

    C# winform 发送邮件,附件,例题 smtp协议

    C# winform 发送邮件加附件,smtp协议 是个例题,能用 有不足之处请指教

    c# smtp邮件发送类

    c# smtp邮件发送类,经过测试的,贡献出来给大家用用

    C#使用SMTP协议发送电子邮件

    摘要:C#源码,网络相关,SMTP,发送邮件  C#使用SMTP协议发送电子邮件,超简单的C#学习实例,想了解在C#下使用SMTP协议的朋友,可以下载此程序代码参考。

    C#发送邮件小程序源码

    C#发送邮件小程序源码 仅供大家一起学习参考!

    C#通过smtp发送邮件

    C#通过smtp发送邮件,速度快,成功率高。

    C#通用email类(Smtp)

    一个C#的通用EMail类,采用.Net内置的Smtp方式发送 //发送邮件的SMTP服务器 public string SmtpHost //Smtp服务器端口 ...public bool SmtpSSL // 错误信息及错误代码 public string errMsg public int errCode

    C#发送Email邮件三种方法的总结

    通过.Net FrameWork 2.0下提供的“System.Net.Mail”可以轻松的实现,本文列举了3种途径来发送: 1.通过Localhost; 2.通过普通SMTP; 3.通过SSL的SMTP;

    C# SMTP协议 发送邮件的实例

    C# 使用SMTP协议 根据发件人邮箱服务器名和邮箱名给收件人 发送邮件

    c#smtp 发送邮件代码

    用c#做的发送邮件代码,可以添加附件,用密码和用户名等信息

Global site tag (gtag.js) - Google Analytics