【surprise 】NET环境下Email的技术介绍

2023-11-02 02:40

本文主要是介绍【surprise 】NET环境下Email的技术介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

NET环境下Email的技术介绍

一、NET环境下几种不同的邮件发送解决方案

 1、 WEB开发,在ASP.NET中引用System.Web.Mail类

邮件消息是通过内置在 Microsoft Windows 2000 中的 SMTP 邮件服务或任意的 SMTP 服务器来传送的。System.Web.Mail 命名空间中生成的SmtpMail类可用于在C#网络程序中发送SMTP邮件。此命名空间中的类可以在 ASP.NET 或任何托管应用程序。在System.Web.Mail提供用于构造电子邮件附件的属性和方法的类MailAttachment和用于构造电子邮件的属性和方法的类MailMessage

 SmtpMail

        属性:

SmtpServer 获取或设置要用于发送所有电子邮件的 SMTP 邮件服务器的名称。

方法:

Send()                          发送电子邮件。

 MailMessage

        属性:

       Attachment              指定随消息一起传输的附件列表。
       
Bcc                          获取或设置以分号分隔的电子邮件地址列表,这些地址接收电子邮件的匿名副本                                              (BCC)

Body                       获取或设置电子邮件的正文。

BodyEncoding         获取或设置电子邮件正文的编码类型。

BodyFormat           获取或设置电子邮件正文的内容类型。

Cc                          获取或设置以分号分隔的电子邮件地址列表,这些地址接收电子邮件的抄送副本 (CC)

From                      获取或设置发件人的电子邮件地址。

Headers                 指定随电子邮件一起传输的自定义标头。

Priority                  获取或设置电子邮件的优先级。

Subject                  获取或设置电子邮件的主题行。

To                         获取或设置收件人的电子邮件地址。

UrlContentBase    获取或设置 Content-Base HTTP 标头,即在 HTML 编码的电子邮件正文中使用的所有相对URL URL 基。

UrlContentLocation获取或设置电子邮件的 Content-Location HTTP 标头。

 MailAttachment

        构造函数:

 

filename附件文件的名称。

代码如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Web.Mail;

namespace WebMail

{

     public class WebForm1 : System.Web.UI.Page

     {

          protected System.Web.UI.WebControls.Button Button1;

          private System.Web.Mail.MailMessage m_Mail;

          private void Page_Load(object sender, System.EventArgs e)

         {

              m_Mail=new MailMessage();

         }

          #region Web Form. Designer generated code

          override protected void OnInit(EventArgs e)

         {

              InitializeComponent();

              base.OnInit(e);

         }

          private void InitializeComponent()

         {   

              this.Button1.Click += new System.EventHandler(this.Button1_Click);

              this.Load += new System.EventHandler(this.Page_Load);

         }

          #endregion

          private void Button1_Click(object sender, System.EventArgs e)

         {

              '定义SMTP服务器的名称

        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 = "邮件主体!";

                '邮件以 HTML的格式发送

                m_Mail.BodyFormat = MailFormat.Html;

             '定义邮件的有限级,在此设定为高

                m_Mail.Priority = MailPriority.High;

            '给发送的邮件附加上一个附件

              m_Mail.Attachments.Add(New MailAttachment("c:\lihonggen.doc"));

              SmtpMail.Send(m_Mail);

         }

     }

}

2、 在开发Windows 应用程序中使用System.Net.Sockets

也是基于SMTP协议

一、SMTP协议简介

  客户端通过服务器的25端口建立TCP/IP连接

服务器端: 220 server.com Simple Mail Transfer Service Ready

  客户端使用“HELO”命令标识发件人

客户端:HELO server.com

服务器端:250 server.com

  客户端发送MAIL命令,服务器端以OK作为响应表明准备接收

客户端: MAIL FROM:

服务器端: 250 OK

  客户端发送RCPT命令标识收件人,服务器端回应是否愿意为收件人接受邮件

客户端:RCPT TO:

服务器端:250 OK

  协商结束后用命令DATA发送发送邮件

客户端:DATA

服务器端:354 Start mail input: end with .

  客户端以.表示结束输入内容一起发送出去

客户端:Subject: 

内容

.

 客户端用QUIT命令退出。

              客户端:QUIT

服务器端:250 server.com closing transmission channel

优点:可以在此基础上开发出自己的组件,利用Sockets我们可以进行网络编程开发

缺点:程序量相对较多,

因代码过长所以在此不显示了

3、 IIS SMTP自带的基本的发信组件CDONTS

你不必专门下载,微软已经提供了这个组件,只要安装了2000NTSMTP就会有的。

优点:组件由操作系统自带

缺点:功能比较差,可扩展性不强

        Mymail = CreateObject("CDONTS.NewMail")

        Mymail.From = *** '信件发送者信箱

        Mymail.To = *** ‘信件接收者信箱

        Mymail.CC = *** '抄送

        Mymail.BCC = *** ’密件发送

        Mymail.Subject = *** ‘信件主题

        Mymail.Body = *** ’信件正文

        '设置优先级,0-不重要,1-一般,2-重要。

        Mymail.Importance = 2

        Mymail.Send()

        Mymail = Nothing

4、使用JMail组件

Jmail具有以下特点:

1)可以发送附件;
(2)详细日志能力,便于你查看问题所在;
(3)设置邮件发送的优先级;
(4)支持多种格式的邮件发送,比如说以HTML或者TXT的方式发送邮件。这是个免费的组件。
(5)密件发送/(CC)抄送/紧急信件发送能力;
(6)最关键的就是--免费的组件,不必发钱,所以非常值得使用。

JMail组件的常用属性:

Body   邮件正文

Logging   调用Log记录,供Debug

Priority   邮件的优先程度,从15

Sender   发件人

ServerAddress   SMTP服务器的IP地址或名称

Subject   邮件标题

 

JMail组件的常用方法:

AddAttachment   指定附件文件

AddRecipient   加入一个收件人

AddRecipientBCC   隐藏的副本抄送,只有发件人和BCC收件人知道。

AddRecipientCC   副本抄送

Execute   送出邮件

 

了解必要的属性及方法后,余下的部分接收使用者输入的Email,当成参数传给AddRecipient方法,然后根据需要填上其余属性,最后以Execute方法寄出。例如:

        JMail = Server.CreateObject("JMail.SMTPMail")

        JMail.Logging = True

        JMail.ServerAddress = "202.96.144.48"

        JMail.Sender = "lihonggen0@163.com"

        JMail.Subject = "subject."

        JMail.Body = "body."

        JMail.AddRecipient("bbbb@163.com")

        JMail.AddAttachment("c:\go.gif")

        JMail.Priority = 3

        JMail.Execute()

        JMail = Nothing

 

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

      

POP3协议是一个客户读取或接收存储在远程邮件服务器上的邮件最常用的基本协议,一旦客户机与服务器建立一个连接,就发送简单文本命令,并且服务器以恰当的信息来响应。必须知道使用的命令是什么,以什么样的顺序发出,才能正确地从服务器上收取信件。

注意点:在登陆服务器时端口号应该是110

POP3的执行命令

首先手工输入

telnet pop.163.com

1.权限检查命令

执行命令

描述

USER

用户名

PASS

密码

 

2.获取信息命令

执行命令

描述

STAT

响应包含邮件的数量和全部邮件大小

LIST

收到一份个人邮件列表,列出每封邮件的大小

 

3.检索邮件

执行命令

描述

TOP

它能取得邮件的报头并且从信件中挑出文本行的数目

RETR

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-343239/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 【边城狂人】C#.NET 中的类型转换
下一篇: 【hBifTs】.NET中使用Mapping File 的API :)
user_pic_default.png
请登录后发表评论 登录
全部评论
<%=items[i].createtime%>

<%=items[i].content%>

<%if(items[i].items.items.length) { %>
<%for(var j=0;j
<%=items[i].items.items[j].createtime%> 回复

<%=items[i].items.items[j].username%>   回复   <%=items[i].items.items[j].tousername%>: <%=items[i].items.items[j].content%>

<%}%> <%if(items[i].items.total > 5) { %>
还有<%=items[i].items.total-5%>条评论 ) data-count=1 data-flag=true>点击查看
<%}%>
<%}%> <%}%>
iDotNetSpace

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5324676

最新文章

  • ASP.NET入门五步详解
  • ASP.NET配置错误页面浅析
  • 介绍ASP.NET控件ID
  • ASP.NET中批量删除--只调用一次存储过程
  • C#后台调用前台javascript的五种方法
  • 学习ASP.NET的流程
  • 详解ASP.NET页面的aspx扩展
  • asp.net中GridView导出数据
  • ASP.NET中获取URL重写前的原始地址
  • C#常用线程同步方法应用场景和实现原理

转载于:http://blog.itpub.net/12639172/viewspace-343239/

这篇关于【surprise 】NET环境下Email的技术介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/327538

相关文章

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir