首页 > 其他分享 >.NET环境下Email的技术介绍

.NET环境下Email的技术介绍

时间:2023-07-02 11:05:24浏览次数:33  
标签:JMail System 介绍 发送 Mail 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);


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=" [email protected] ";;
'定义邮件的接收地址 
m_Mail.To = " [email protected]";
'定义邮件的暗送地址 
'm_Mail.Bcc "[email protected]"
'定义邮件的抄送地址 
'm_Mail.Cc = "[email protected]"
'定义邮件的主题 
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

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

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

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

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 邮件的优先程度,从1到5

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 = "[email protected]"
JMail.Subject = "subject."
JMail.Body = "body."
JMail.AddRecipient("[email protected]")
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

返回邮件的全部字节数目和整个邮件的文本

QUIT

终止会话,关闭邮箱

由于把每个功能都写下来收件代码就会过长,因此只写了USER、PASS、STAT执行命令javascript:void(0),其它执行命令的代码请参考有关文档。

标签:JMail,System,介绍,发送,Mail,NET,电子邮件,Email,邮件
From: https://blog.51cto.com/u_3319687/6603706

相关文章

  • 光脚丫学ASP.NET MVC(0001):创建ASP.NET MVC应用程序项目
    演示视频:http://u.115.com/file/cloa5hpg本演示介绍了如何使用VisualStudio2010创建ASP.NETMVC应用程序项目。下面是VS的新建项目对话框。其中红色线圈住的两个模板是VS2010安装时就自带的ASP.NETMVC2的项目模板,可以从官方网站下载最新的项目模板。下图是新建单元测试项目对话......
  • [代码]如何在ASP.NET网页间传递数据
    重点总结目前为止在ASP.NET网页中传递数据的方式至少有5种:1、通过查询字符串传递数据。2、通过HTTPPOST传递数据。3、通过会话状态传递数据。4、通过源页的公共属性传递数据。5、通过源页中的控件值传递数据。到底使用哪种方式来进行数据的传递,这可能受到两方面的影响:1、页面重定......
  • 光脚丫学ASP.NET MVC(0008):非操作方法
    视频演示:http://u.115.com/file/e6r505ey控制器中的方法并不一定都是操作方法。要使控制器中的方法称为操作方法,则必须使其为公共方法,并且没有为其添加NonActionAttribute特性。私有方法不是操作方法,静态方法也不是操作方法。如下面的两个方法,均不是控制器的操作方法。privateA......
  • [代码]如何在ASP.NET网页间传递数据
    重点总结目前为止在ASP.NET网页中传递数据的方式至少有5种:1、通过查询字符串传递数据。2、通过HTTPPOST传递数据。3、通过会话状态传递数据。4、通过源页的公共属性传递数据。5、通过源页中的控件值传递数据。到底使用哪种方式来进行数据的传递,这可能受到两方面的影响:1、页面重定......
  • 如何正确学习Kubernetes
    现在Kubernetes已经没有了实际意义上的竞争对手,它的地位就如同Linux一样,成为了事实上的云原生操作系统,是构建现代应用的基石。理论上讲,学习Kubernetes只要看资料就足够了,但实际情况却是学习起来仍然困难重重,我们会遇到很多意想不到的问题。Kubernetes技术栈的特点可以用四个......
  • Anaconda介绍
    Anaconda介绍Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda的下载文件比较大,如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和Python)conda是一个开......
  • Email security
    CiscoESA(EmailSecurityAppliance)是一种安全设备,旨在保护企业免受各种互联网威胁,特别是针对企业电子邮件的威胁。早期,ESA曾经以"IronPort"品牌的形式出现,因此,可以认为CiscoESA和IronPort是同一产品的不同名称。Cisco在2007年收购IronPort并将其整合到其产品线中,因......
  • gnomAD介绍
    gnomAD(全称为GenomeAggregationDatabase)是一个基因组聚合数据库,它汇集了来自广泛人类遗传学研究的大规模基因组数据。gnomAD的目标是提供一个全面的、高质量的人类基因组变异数据库,以帮助研究人员更好地理解基因组变异的频率和影响。gnomAD汇集了来自不同人群的基因组数据,包括......
  • 在 Kubernetes(k8s) 上部署 Spring Boot 应用程序:应用程序使用环境变量中的错误端口属
    如果我使用此配置启动部署(即先启动服务,然后启动部署)则pod在启动期间会失败。在日志中,我可以找到以下消息:***************************APPLICATIONFAILEDTOSTART***************************Description:Bindingtotargetorg.springframework.boot.autoconfigu......
  • 加密狗复制破解方法介绍
    目前计算机上主要采用的加密方法可分为两大类:钥匙盘方式和加密狗方式。钥匙盘方式不在本文的讨论范围,目前用这种加密方式的也比较少见。加密狗,也是目前流行的一种加密工具。它是插在计算机接口上的软硬件结合的软件加密产品。一般有USB口和并口两种,又称USB加密狗和并口加密狗,目前流......