`
studentGuy1
  • 浏览: 17153 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

System.Net.Mail 发送邮件 SMTP协议

 
阅读更多

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发送邮件

    ### ASP.NET 使用 Jmail 和 System.Net.Mail 发送邮件 在 Web 开发中,电子邮件功能是不可或缺的一部分,无论是用于用户注册确认、密码找回还是其他通知用途。ASP.NET 提供了多种方式来实现邮件发送功能,其中两种...

    system.net.mail,winform发送邮件,webform发送邮件,邮件发送

    2. `SmtpClient`: 负责通过SMTP(Simple Mail Transfer Protocol)协议发送邮件。 3. `AlternateView`: 允许创建多种格式的邮件内容,如HTML和纯文本,以便不同邮件客户端能正确显示。 4. `Attachment`: 用于添加...

    asp.net System.Net.Mail 发送邮件

    在ASP.NET中,发送电子邮件通常使用`System.Net.Mail`命名空间中的类,这是一个非常实用的功能,允许开发者轻松地集成邮件发送功能到他们的应用程序中。 发送邮件的主要涉及以下几个关键步骤和类: 1. **...

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

    C#提供了System.Net.Mail命名空间,其中包含MailMessage和SmtpClient类,使我们能够方便地创建和发送邮件。下面将详细介绍如何在C#中实现这一功能,以及如何添加附件和使用HTML格式。 首先,我们需要引入必要的命名...

    Asp.net自动发送邮件

    #### 三、`System.Net.Mail` 发送邮件 `System.Net.Mail`是.NET Framework 2.0之后引入的新的邮件处理类库,它提供了更加强大和灵活的功能,可以更好地控制邮件发送过程。 1. **创建`SmtpClient`实例**:首先创建...

    CS.NET中用System.Web.Mail发送邮件

    ### CS.NET中使用System.Web.Mail发送邮件的知识点详解 #### 一、背景介绍与环境配置 在.NET框架中,`System.Web.Mail`命名空间提供了一系列用于发送电子邮件的类。这通常是在早期版本的.NET框架(如.NET Framework...

    使用.net自带的邮件发送类(System.Web.Mail)

    虽然自.NET Framework 4.5起,`System.Web.Mail`已被标记为过时,并推荐使用`System.Net.Mail`命名空间中的`SmtpClient`类来替代,但在早期版本的.NET框架中,`System.Web.Mail`仍然是一个常用的选择。 ### 使用`...

    .Net V4.0 System.Net命名空间概述

    `System.Net.Mail` 命名空间提供了发送电子邮件的功能,其中 `SmtpClient` 类是核心组件,它负责通过SMTP(简单邮件传输协议)发送邮件。`System.Net.Mime` 命名空间则包含了表示MIME(多用途互联网邮件交换)头的类...

    ASP.NET邮件发送system.Net.Mail案例

    这个例子展示了ASP.NET应用程序如何通过用户界面收集输入,然后使用`System.Net.Mail`发送邮件。开发者可以基于这个模板进行扩展,比如添加错误处理、验证用户输入、支持多个附件、自定义SMTP服务器配置等。在实际...

    C#下通过TLS发送邮件

    下面是一个简单的C#代码示例,展示了如何通过TLS协议发送邮件: ```csharp using System; using System.Net; using System.Net.Mail; public class EmailSender { public static void Main() { string from...

    C# 服务器发送邮件失败实例分析

    “{“success”:false,”message”:”错误System.Net.Mail.SmtpException: Failure sending mail. —&gt; System.Net.WebException: The remote name could not be resolved: ‘smtp.163.com’ 分析: 邮件发送相关...

    jmail发邮件,.net自带mail发邮件

    在.NET框架中,发送电子邮件是常见的任务,通常有两种主要的方法:使用Jmail组件和使用内置的System.Net.Mail命名空间。这两种方法各有优缺点,适用于不同的场景。下面将详细讲解这两种方式。 首先,Jmail是一个第...

    C#使用System.Net邮件发送功能踩过的坑

    System.Net.Mail提供了一组类,如SmtpClient和MailMessage,用于构建和发送电子邮件。然而,在实际应用中,开发者可能会遇到各种挑战和陷阱,比如配置问题、权限限制、安全策略等。 描述中提到了EazyEmail,这是一...

    asp.net发送电子邮件例子

    using System.Net.Mail; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } //当一个用户进行注册的时候同时发送一个邮件到注册人的邮箱,...

    在.NET平台 用C#编程语言 开发邮件发送程序

    System.Net.Mail.SmtpClient _smtpClient = new System.Net.Mail.SmtpClient("SMTP.163.com"); ``` 设置邮件发送方式为网络模式,这意味着邮件将直接通过网络传递到SMTP服务器: ```csharp _smtpClient.Delivery...

    vb.net 邮件收发例子

    首先,VB.NET邮件收发主要依赖于`System.Net.Mail`命名空间中的类。其中,`SmtpClient`类是用于发送邮件的核心组件,而`MailMessage`类则用来构建邮件内容。下面是对这两个关键类的简要介绍: 1. **SmtpClient类**...

    基于 System.Web.Mail的邮件发送和接收类

    然而,对于新的开发,更推荐使用`System.Net.Mail`命名空间,它提供了更现代且功能更全面的邮件处理API,包括对SMTP、POP3和IMAP的支持。 总的来说,虽然`System.Web.Mail`在某些场景下仍然有用,但其局限性(如不...

Global site tag (gtag.js) - Google Analytics