C#使用System.Net.Mail发送邮件全攻略
3星 · 超过75%的资源 需积分: 10 174 浏览量
更新于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`方法代替。
点击了解资源详情
点击了解资源详情
点击了解资源详情
145 浏览量
2023-11-03 上传
2014-06-28 上传
2021-04-27 上传
2009-07-29 上传
2013-11-12 上传
lmf07120057
- 粉丝: 0
- 资源: 6
最新资源
- R语言中workflows包的建模工作流程解析
- Vue统计工具项目配置与开发指南
- 基于Spearman相关性的协同过滤推荐引擎分析
- Git基础教程:掌握版本控制精髓
- RISCBoy: 探索开源便携游戏机的设计与实现
- iOS截图功能案例:TKImageView源码分析
- knowhow-shell: 基于脚本自动化作业的完整tty解释器
- 2011版Flash幻灯片管理系统:多格式图片支持
- Khuli-Hawa计划:城市空气质量与噪音水平记录
- D3-charts:轻松定制笛卡尔图表与动态更新功能
- 红酒品质数据集深度分析与应用
- BlueUtils: 经典蓝牙操作全流程封装库的介绍
- Typeout:简化文本到HTML的转换工具介绍与使用
- LeetCode动态规划面试题494解法精讲
- Android开发中RxJava与Retrofit的网络请求封装实践
- React-Webpack沙箱环境搭建与配置指南