博客
关于我
.NET环境下Email的技术介绍
阅读量:535 次
发布时间:2019-03-08

本文共 2638 字,大约阅读时间需要 8 分钟。

一、NET环境下邮件发送解决方案

在NET环境中,开发邮件发送功能可以通过多种方法实现,以下是几种常用的解决方案分析。

  • 使用System.Web.Mail命名空间
  • System.Web.Mail是微软提供的一个用于发送邮件的类库,适用于在ASP.NET或其他托管应用程序中发送SMTP邮件。其核心类包括SmtpMail和MailMessage。

    SmtpMail类主要用于配置SMTP服务器设置,其关键属性和方法如下:

    属性:

    • SmtpServer:定义使用的SMTP服务器地址。
    • 其他属性包括发件人、收件人、主题、正文等。

    方法:

    • Send():发送电子邮件。

    MailMessage类用于构造邮件内容,其主要属性包括:

    • Attachment:附件管理。
    • Bcc:BCC收件人邮箱列表。
    • Body:邮件正文。
    • ...其他如Cc、From、Headers等常用属性。

    此外,MailAttachment类用于处理附件文件,其主要功能包括:

    • 通过构造函数添加附件文件名。
    • 提供方法管理附件列表。

    代码示例如下: ... protected void Button1_Click(object sender, EventArgs e) { m_Mail.SmtpServer = "smtp.163.com"; m_Mail.From = "lihonggen@163.com"; m_Mail.To = "lihonggen0@163.com"; m_Mail.Bcc = "aa@sina.com"; m_Mail.Cc = "aaa@sina.com"; m_Mail.Subject = "主题"; m_Mail.Body = "邮件主体!"; m_Mail.BodyFormat = MailFormat.Html; m_Mail.Priority = MailPriority.High; m_Mail.Attachments.Add(new MailAttachment("c:/lihonggen.doc")); SmtpMail.Send(m_Mail); } ...

    1. 使用System.Net.Sockets
    2. System.Net.Sockets提供了基于TCP/IP协议的低级别网络通信功能,常用于自定义邮件发送系统。其优势在于支持灵活的协议开发,但代码复杂度较高。

      SMTP协议工作流程详见下文。

      1. 使用IIS SMTP自带的CDONTS组件
      2. CDONTS(Collaborative Data_OPTeracionalesource Naming Service,合作数据名称服务组件)是微软提供的免费组件,集成于IIS中,其特点包括:

        优点:

        • 内置于系统,无需额外安装。
        • 开源结构便于扩展。

        缺点:

        • 功能有限,扩展性不足。

        使用示例: using CDONTS;

        // 初始化邮件组件 Mymail = CreateObject("CDONTS.NewMail"); Mymail.From = "lihonggen@163.com"; Mymail.To = "lihonggen0@163.com"; Mymail.Subject = "邮件主题"; Mymail.Body = "邮件正文内容"; Mymail.Importance = 2; Mymail.Send(); Mymail = Nothing;

        1. 利用JMail组件
        2. JMail是一个免费邮件组件,具有丰富功能,适合需要高级邮件发送功能的场景。其主要特点包括:

          • 支持附件添加。
          • 具备详尽的日志记录功能。
          • 可设置邮件优先级。
          • 支持多种邮件格式(HTML和TXT)发送。
          • 提供免费使用,性价比高。

          JMail常用属性及方法: 属性:

          • Body:邮件正文内容。
          • Logging:日志开关。
          • Priority:邮件优先级。
          • Sender:发件人信息。
          • ServerAddress:SMTP服务器地址。
          • Subject:邮件主题。

          方法:

          • AddAttachment():添加附件。
          • AddRecipient():添加收件人。
          • AddRecipientBCC():添加BCC收件人。
          • Execute():发送邮件。

          使用示例: using System;

          JMail jMail = Server.CreateObject("JMail.SMTPMail"); jMail.Logging = true; jMail.ServerAddress = "202.96.144.48"; jMail.Sender = "lihonggen0@163.com"; jMail.Subject = "邮件标题"; jMail.Body = "邮件正文"; jMail.AddRecipient("bbbb@163.com"); jMail.AddAttachment("c:/go.gif"); jMail.Priority = 3; jMail.Execute(); jMail = Nothing;

          二、NET环境下邮件接收解决方案

          在NET环境中接收邮件通常基于POP3协议,它是邮件接收最常用的协议之一。POP3客户端通过TCP/IP协议连接邮件服务器,按文本命令操作,服务器返回相应响应代码。

          服务器端与客户端的通信过程如下:

        3. 客户端使用USER命令进行身份验证。
        4. 客户端发送MAIL FROM:命令,服务器端返回OK。
        5. 客户端发送RCPT TO:命令,服务器端确认收件人地址。
        6. 客户端发送DATA命令,服务器端告知输入邮箱准备接收数据。
        7. 客户端发送终止命令(如。当.)表示邮件发送完成。
        8. 客户端发送QUIT退出会话。
        9. POP3的重要命令包括:

          • USER:认证命令。
          • PASS:密码验证命令。
          • STAT:获取邮件信息。
          • LIST:列出邮件列表。
          • TOP:获取邮件头信息。
          • RETR:获取完整邮件内容。
          • QUIT:退出会话。

          实现步骤:

        10. 连接POP3服务器(如:pop.163.com)。
        11. 身份验证:
          • 发送USER username
          • 发送PASS password
        12. 获取邮件总数及大小:
          • 使用STAT命令获取总邮件数及总大小。
        13. 获取邮件列表:
          • 列出所有邮件ID或大小。
        14. 查看具体邮件内容:
          • 使用RETR命令获取完整邮件内容。
        15. 删除或保留邮件:
          • 使用DELE命令删除邮件。
          • 未删除则按条件自动保留。

    转载地址:http://aktiz.baihongyu.com/

    你可能感兴趣的文章
    【转载】DSP基础--定点小数运算
    查看>>
    idea thymeleaf页面变量报错解决
    查看>>
    云游戏,打响5G第一战
    查看>>
    Docker 拉取镜像速度太慢
    查看>>
    【毕设-STM32f103寄存器版本】智能防盗系统
    查看>>
    Vue Itea软件里直接npm run build 报错npm ERR! missing script :build
    查看>>
    勒索病毒Kraken2.0.7分析
    查看>>
    MySQL错误1366处理方法
    查看>>
    驱动程序之_1_字符设备_13_USB设备_1_基本概念
    查看>>
    微机原理 6-计算机中常用的数制
    查看>>
    window系统下安装使用curl命令工具
    查看>>
    假如计算机是中国人发明的,那代码应该这么写
    查看>>
    神器 Codelf !
    查看>>
    趣图:会算法和不会算法的区别
    查看>>
    区块链会2020再次爆发,先学点DAPP压压惊,跟我一起学《区块链DApp入门实战》
    查看>>
    问题解决28:微信网页授权出现redicet_uri 参数错误
    查看>>
    LeakCanary 中文使用说明
    查看>>
    反转链表,(5)
    查看>>
    Camera (api1)的打开过程
    查看>>
    wxwidgets绘图
    查看>>