System.Net.Mail
发送邮件
最近几天项目不太紧张,突然对发邮件有点兴趣,随即的研究了一下,本着Apache的开元精神和自身能力的提高以及大家的相互交流,总结了一下经验和大家分享。
说起发送邮件我们首先要对SMTP/Pop3
有一定的了解,当然高手可以跳过。
简单的说SMTP是用来发送E-Mail邮件所遵循的协议,Pop3是接收E-mail所遵循的协议!
SMTP(Simple Mail Transfer Protocol)
即简单邮件传输协议,他是一组用于由源地址到目的地址传送邮件的规则,简单的说就是:From-->To
的传送规则。由SMTP来控
制信件中转的方式。SMTP属于TCP/IP家族中的一员,它帮助每一台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,我
们就把E-Mail寄到收信人的服务器上了,这个过程只需要几分钟。SMTP服务器则遵循SMTP协议发送的邮件服务器,用来中转你发出的电子邮件。
POP3 (Post Office Protocol)
即邮局协议的第3个版本,
它规定怎样将计算机连接到Internet的邮件服务器和下载电子邮件的协议。它是因特网第一个离线邮件协议标准,POP3
允许用户从服务器端得油价下载到本地存储,同时删除保存在服务器端的邮件,而POP3
服务器遵循POP3
协议的接收服务器,又来接收邮件。
做这两段说明,只是想给同我一样的初学者对于SMTP/Pop3一个简单的介绍使大家有一定的了解,那么下面我们切入正题吧。
在ASP.NET中对于发邮件其实有两个版本。早期的有在System.Web.Mail,而在2.0版本开始就推出了System.Net.Mail
作为发送邮件的类,在此文中,我只对System.Net.Mail
做介绍,以后System.Web.Mail
的一些我也会给大家。
下面就用代码说话吧:
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="from">发件人</param>
/// <param name="to">收件人</param>
/// <param name="subject">邮件主题</param>
/// <param name="content">邮件内容</param>
/// <param name="host">SMTP事物的主机名称</param>
/// <param name="port">端口号默认25 可以为空</param>
/// <param name="pass">发件邮箱密码</param>
/// <param name="isHtml">是否用HTML格式发送</param>
/// <param name="enableSSL">是否用加密连接</param>
/// <param name="shiledHead">是否屏蔽发送到垃圾邮件中</param>
/// <returns>True Or False</returns>
private bool SendEmail(string from, string pass, string to, string subject, string content, string host, string port, bool isHtml, bool enableSSL, bool shiledHead)
{
MailAddress Efrom = new MailAddress(from);
MailMessage mail = new MailMessage();
#region//可屏蔽垃圾箱的功能
if (shiledHead)
{
mail.Headers.Add("X-Mailer","Tom");
mail.Headers.Add("X-Priority", "3");
mail.Headers.Add("X-MSMail-Priority", "Normal");
mail.Headers.Add("X-MimeOLE", "Produced By Microsoft MimeOLE V6.00.2900.2869");
mail.Headers.Add("ReturnReceipt", "1");
}
#endregion
//邮件主题
mail.Subject = subject;
//发件人
mail.From = Efrom;
//收件人
mail.To.Add(new MailAddress(to));
//邮件内容
mail.Body = content;
//设置邮件编码
mail.BodyEncoding = System.Text.Encoding.UTF8;
//是否用HTML格式显示
mail.IsBodyHtml = isHtml;
//邮件的优先级(高|正常|低)
mail.Priority = MailPriority.High;
//邮件发送通知
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
//SMTP传输协议
SmtpClient client = new SmtpClient();
//设置用于SMTP事物的主机名称,填IP地址也可以
client.Host = host;
//设置用于SMTP事物的端口,默认就是25
if (String.IsNullOrEmpty(port)) client.Port = 25;
else client.Port = Int32.Parse(port);
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(from, pass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = enableSSL;
try
{
client.Send(mail);
return true;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
return false;
}
}
注明:只是做 方法的解释,对异常没有做详细的处理,大家在运用的时候需要相应的加上try{}catch(){}块!
SMTP/POP3 参数链接
分享到:
相关推荐
### ASP.NET 使用 Jmail 和 System.Net.Mail 发送邮件 在 Web 开发中,电子邮件功能是不可或缺的一部分,无论是用于用户注册确认、密码找回还是其他通知用途。ASP.NET 提供了多种方式来实现邮件发送功能,其中两种...
2. `SmtpClient`: 负责通过SMTP(Simple Mail Transfer Protocol)协议发送邮件。 3. `AlternateView`: 允许创建多种格式的邮件内容,如HTML和纯文本,以便不同邮件客户端能正确显示。 4. `Attachment`: 用于添加...
在ASP.NET中,发送电子邮件通常使用`System.Net.Mail`命名空间中的类,这是一个非常实用的功能,允许开发者轻松地集成邮件发送功能到他们的应用程序中。 发送邮件的主要涉及以下几个关键步骤和类: 1. **...
C#提供了System.Net.Mail命名空间,其中包含MailMessage和SmtpClient类,使我们能够方便地创建和发送邮件。下面将详细介绍如何在C#中实现这一功能,以及如何添加附件和使用HTML格式。 首先,我们需要引入必要的命名...
#### 三、`System.Net.Mail` 发送邮件 `System.Net.Mail`是.NET Framework 2.0之后引入的新的邮件处理类库,它提供了更加强大和灵活的功能,可以更好地控制邮件发送过程。 1. **创建`SmtpClient`实例**:首先创建...
### CS.NET中使用System.Web.Mail发送邮件的知识点详解 #### 一、背景介绍与环境配置 在.NET框架中,`System.Web.Mail`命名空间提供了一系列用于发送电子邮件的类。这通常是在早期版本的.NET框架(如.NET Framework...
虽然自.NET Framework 4.5起,`System.Web.Mail`已被标记为过时,并推荐使用`System.Net.Mail`命名空间中的`SmtpClient`类来替代,但在早期版本的.NET框架中,`System.Web.Mail`仍然是一个常用的选择。 ### 使用`...
`System.Net.Mail` 命名空间提供了发送电子邮件的功能,其中 `SmtpClient` 类是核心组件,它负责通过SMTP(简单邮件传输协议)发送邮件。`System.Net.Mime` 命名空间则包含了表示MIME(多用途互联网邮件交换)头的类...
这个例子展示了ASP.NET应用程序如何通过用户界面收集输入,然后使用`System.Net.Mail`发送邮件。开发者可以基于这个模板进行扩展,比如添加错误处理、验证用户输入、支持多个附件、自定义SMTP服务器配置等。在实际...
下面是一个简单的C#代码示例,展示了如何通过TLS协议发送邮件: ```csharp using System; using System.Net; using System.Net.Mail; public class EmailSender { public static void Main() { string from...
“{“success”:false,”message”:”错误System.Net.Mail.SmtpException: Failure sending mail. —> System.Net.WebException: The remote name could not be resolved: ‘smtp.163.com’ 分析: 邮件发送相关...
在.NET框架中,发送电子邮件是常见的任务,通常有两种主要的方法:使用Jmail组件和使用内置的System.Net.Mail命名空间。这两种方法各有优缺点,适用于不同的场景。下面将详细讲解这两种方式。 首先,Jmail是一个第...
System.Net.Mail提供了一组类,如SmtpClient和MailMessage,用于构建和发送电子邮件。然而,在实际应用中,开发者可能会遇到各种挑战和陷阱,比如配置问题、权限限制、安全策略等。 描述中提到了EazyEmail,这是一...
using System.Net.Mail; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } //当一个用户进行注册的时候同时发送一个邮件到注册人的邮箱,...
System.Net.Mail.SmtpClient _smtpClient = new System.Net.Mail.SmtpClient("SMTP.163.com"); ``` 设置邮件发送方式为网络模式,这意味着邮件将直接通过网络传递到SMTP服务器: ```csharp _smtpClient.Delivery...
首先,VB.NET邮件收发主要依赖于`System.Net.Mail`命名空间中的类。其中,`SmtpClient`类是用于发送邮件的核心组件,而`MailMessage`类则用来构建邮件内容。下面是对这两个关键类的简要介绍: 1. **SmtpClient类**...
然而,对于新的开发,更推荐使用`System.Net.Mail`命名空间,它提供了更现代且功能更全面的邮件处理API,包括对SMTP、POP3和IMAP的支持。 总的来说,虽然`System.Web.Mail`在某些场景下仍然有用,但其局限性(如不...