ASP.NET邮箱发送教程与示例代码

0 下载量 167 浏览量 更新于2024-08-29 收藏 43KB PDF 举报
"ASP.NET 发邮件示例代码" 在ASP.NET中发送电子邮件是一个常见的任务,通常用于通知、确认或与用户进行通信。以下是一个使用C#编写的ASP.NET发送邮件的示例代码。这个例子展示了如何配置和使用SMTP服务器来发送邮件。 首先,我们看到代码中定义了一个`SendMail`方法,这是实际发送邮件的入口点。在方法内部,使用了`try-catch`块来处理可能出现的异常情况。 ```csharp protected void SendMail() { try { // 初始化变量 string CreaterName = ""; string examiner = ""; List<string> mailList = GetMailList(ref CreaterName, ref examiner); // 创建MailEntity对象 MailEntity me = new MailEntity(); MailEntity me_1 = new MailEntity(); // 从配置文件获取发件人邮箱、名称和密码 me.AddresserMail = ConfigurationManager.AppSettings["AddresserMail"].ToString(); me.AddresserName = ConfigurationManager.AppSettings["AddresserName"].ToString(); me.AddresserPwd = ConfigurationManager.AppSettings["AddresserPwd"].ToString(); // 如果有第二个发件人,也进行配置 me_1.AddresserMail = ConfigurationManager.AppSettings["AddresserMail_1"].ToString(); me_1.AddresserName = ConfigurationManager.AppSettings["AddresserName_1"].ToString(); me_1.AddresserPwd = ConfigurationManager.AppSettings["AddresserPwd_1"].ToString(); // 获取后缀名和是否发送的配置 string strPostfix = ConfigurationManager.AppSettings["Postfix"].ToString(); string isSend = ConfigurationManager.AppSettings["isSend"].ToString(); } // ... } ``` 在上述代码中,`GetMailList`方法是用来获取收件人邮箱列表的,这里没有给出具体实现。`MailEntity`类是用来封装邮件信息的,包括发件人邮箱、名称和密码等。`ConfigurationManager.AppSettings`是用于读取应用程序配置文件中的设置,如`web.config`,这样可以将敏感信息(如密码)存储在非代码的地方,提高安全性。 接下来,如果`isSend`的值为"1",表示需要发送邮件。邮件的发送会遍历`mailList`中的每个邮箱地址: ```csharp if (isSend == "1") { if (mailList.Count > 0) { foreach (string mail in mailList) { int count = mail.IndexOf("@"); string postfix = mail.Substring(count + 1); // 检查邮件后缀是否匹配配置的后缀 if (postfix.ToLower() == strPostfix.ToLower()) { // 构建邮件内容,这里假设使用StringBuilder StringBuilder ss = new StringBuilder(); // 添加邮件内容,实际应用中可能包含HTML或者文本 // ... // 创建SmtpClient实例并配置SMTP服务器 SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.example.com"; // 替换为实际SMTP服务器地址 smtp.Port = 587; // 替换为实际SMTP端口 smtp.EnableSsl = true; // 是否启用SSL smtp.Credentials = new NetworkCredential(me.AddresserMail, me.AddresserPwd); // 设置认证信息 // 创建邮件消息 MailMessage message = new MailMessage(); message.From = new MailAddress(me.AddresserMail, me.AddresserName); message.To.Add(mail); message.Subject = "邮件主题"; message.Body = ss.ToString(); // 设置邮件正文 message.IsBodyHtml = true; // 如果邮件是HTML格式 // 发送邮件 smtp.Send(message); } } } } ``` 这段代码中,`SmtpClient`类是.NET Framework提供的用于发送邮件的类。通过设置`Host`、`Port`、`EnableSsl`以及`Credentials`属性来配置SMTP服务器,并创建`MailMessage`对象来填充邮件信息,如收件人、主题、正文等。最后,使用`smtp.Send(message)`发送邮件。 总结,这个示例展示了ASP.NET中使用C#发送邮件的基本流程,包括读取配置、构建邮件实体、设置SMTP服务器参数以及发送邮件。实际应用中,可能需要根据具体需求添加邮件附件、设置抄送和密送、处理错误等更复杂的功能。