C#使用System.Net.Mail发送邮件全攻略
3星 · 超过75%的资源 需积分: 10 137 浏览量
更新于2024-09-17
收藏 29KB DOC 举报
“C#发送Email邮件的三种方法”
在.NET Framework 2.0及更高版本中,使用`System.Net.Mail`命名空间可以方便地实现电子邮件的发送。以下将详细介绍三种不同的方法来发送邮件:
1. 通过Localhost
在本地主机上发送邮件的方法适用于系统配置有邮件服务器的情况。下面是一个简单的示例代码:
```csharp
public void SendMailLocalhost()
{
MailMessage msg = new MailMessage();
msg.To.Add("a@a.com");
msg.To.Add("b@b.com");
// 可以添加多个收件人
msg.CC.Add("c@c.com");
// 设置发件人信息
msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8);
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"; // 设置SMTP服务器为本地主机
object userState = msg;
try
{
client.SendAsync(msg, userState); // 异步发送
// 或者使用client.Send(msg); 进行同步发送
MessageBox.Show("发送成功");
}
catch (Exception ex)
{
// 错误处理
}
}
```
这段代码首先创建了一个`MailMessage`对象,设置了收件人、抄送人、发件人、主题和邮件内容。然后,它使用`SmtpClient`对象指定SMTP服务器(本例为"localhost")并发送邮件。
2. 通过普通SMTP
如果邮件服务器不是本地主机,可以通过指定SMTP服务器地址来发送邮件:
```csharp
client.Host = "your-smtp-server-address";
client.Port = yourPortNumber; // 您可能需要设置端口号,例如587或465
client.UseDefaultCredentials = false; // 不使用默认凭据
client.Credentials = new NetworkCredential("username", "password"); // 提供SMTP服务器的用户名和密码
```
这里,你需要替换`your-smtp-server-address`和`yourPortNumber`为实际的SMTP服务器地址和端口,并提供正确的登录凭据。
3. 通过SSL的SMTP
对于使用SSL加密的SMTP服务器,需要开启SSL支持:
```csharp
client.EnableSsl = true;
```
这将确保邮件发送过程中的通信安全。
在所有情况下,确保正确配置了邮件服务器的设置,如主机名、端口、认证信息等。如果发送邮件失败,应捕获`SmtpException`异常并进行适当的错误处理。此外,`SendAsync`方法用于异步发送,可以提高程序响应性,但需注意处理异步操作的完成或异常。如果希望同步发送,可以使用`Send`方法代替。
2020-09-04 上传
145 浏览量
2023-11-03 上传
2014-06-28 上传
2021-04-27 上传
2013-11-12 上传
2009-07-29 上传
lmf07120057
- 粉丝: 0
- 资源: 6
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章