★搜Asp.net★(www.soAsp.net),为专业技术文档网站。
包括Asp.net开发技术文档·C#开发技术文档·Access/SQL Server数据库开发技术文档·VB.NET开发技术文档。
还包括·项目实战经验总结·开发经验技巧总结·项目开发心得。
Jmail组件发送和接收Email技术

Jmail组件是由Dimac公司开发的用来完成邮件的发送、接受、加密和集群传输等工作的。它支持从POP3邮件服务器收取邮件,支持加密邮件的传输,而且工作效率非常高。

下面对Jmail.SMTPmail对象的属性和方法进行简要说明。

Jmail组件的常用属性如下表所示。

                                        表 Jmail组件常用属性及说明

属性

说明

Charset

字符集

Encoding

设置附件的编码方式

ContentType

邮件的内容类型

ISOEncodeHeaders

是否将信头编码成iso-8859-1字符集

Priority

邮件的优先级

From

发件人的E-mail地址

FromName

发件人姓名

Subject

邮件主题

MailServerUserName

登录邮件服务器的用户名

MailServerPassWord

登录邮件服务器的用户密码

Jmail组件的常用方法如下表所示。

                               表  Jmail组件常用方法及说明

方法

说明

AddHeader(XHeader,Value)

添加用户定义的信件标头

AddRecipient(emailAddress,recipientName,PGPKey)

添加收件人E-mail地址、姓名并对其加密

AddRecipientCC(emailAddress,recipientName,PGPKey)

添加抄送人E-mail地址、姓名并对其加密

AddRecipientBCC(emailAddress, PGPKey)

添加密送人E-mail地址并对其加密

AddAttachment(URL,附件名)

添加附件

Send()

发送邮件

Connect()

同邮件服务器建立连接,并接收邮件

DeleteMessages()

清空邮件服务器中的邮件

Disconnect()

断开和邮件服务器的连接

在使用Jmail组件发送电子邮件之前,首先需要添加对Jmail组件的引用,其具体步骤如下:

(1)在“解决方案资源管理器”中找到要添加引用的网站项目,单击鼠标右键,选择快捷菜单中的“添加引用”选项。

(2)在打开的“添加引用”对话框中选择“浏览”选项卡并选择要引用的jmail.dll文件,单击“确定”按钮,将Jmail组件添加到网站项目的引用中,然后就可以直接在后台代码中使用其属性和方法。

注意:Jmail组件不是ASP.NET 2.0中自带的组件,使用时需要安装,Jmail安装文件参见本书附带光盘。另外,在本地计算机上要注册该组件,具体方法是:例如该组件放在C:\Jmail\Jmail.dll下,注册时只需在“运行”里运行“Regsvr32 C:\Jmail\Jmail.dll”即可。

下面将通过一个简单的例子,使读者初步了解Jmail组件。首先建立一个sendEmail方法,参数 sender, receiver,subject,body,eserver分别代表发信人、收信人、主题、邮件内容和服务器地址,然后通过调用这个方法将填写完整的电子邮件发送出去,具体代码如下。

public void sendEmail(string sender,string receiver, string subject, string body, string eserver)
    {
        jmail.MessageClass jmMessage = new jmail.MessageClass();
        jmMessage.Charset = "GB2312";
        jmMessage.ISOEncodeHeaders = false;
        jmMessage.From = sender;
        jmMessage.Subject = subject;
        jmMessage.AddRecipient(receiver, "", "");
        if (this.upFile.PostedFile.ContentLength != 0)
        {
            string sFilePath = this.upFile.PostedFile.FileName;
            jmMessage.AddAttachment(@sFilePath, true, "");
        }
        jmMessage.Body = body;
        if (jmMessage.Send(eserver, false))
        {
            Page.RegisterClientScriptBlock("ok", "<script language=javascript>alert('发送成功')</script>");
        }
        else
            Page.RegisterClientScriptBlock("ok", "<script language=javascript>alert('发送失败,请仔细检查邮件服务器的设置是否正确!')</script>");
        jmMessage = null;
    }
实现电子邮件的接收功能时,首先需要配置POP3服务,步骤如下:

(1)在“控制面板”中双击“添加或删除程序”,会弹出“添加或删除程序”窗口。

(2)单击“添加/删除Windows组件”,会弹出“Windows组件向导”,在“Windows组件向导”对话框中选择“电子邮件服务”复选框,,依次单击“下一步”按钮,完成“电子邮件服务”的添加操作。

选中“电子邮件服务”复选框之后,单击【详细信息】按钮,会弹出“电子邮件服务”对话框,可以有选择性的安装组件。

(2)当添加完“电子邮件服务”后,打开“管理工具”对话框,这时将会出现一项新的功能,即“POP3服务”。

(3)双击打开“POP3”服务,右键单击“MRLS”,弹出“添加域”窗口,在此添加一个新域(如163.com),单击“确定”按钮。

(4)当添加完“域”后,选中相应的域,并在指定域内添加邮箱名和密码,然后单击“确定”按钮即可。

 注意:所有域都在本机上分出一定的空间来存放信息,默认位置为“C:\Inetpub\mailroot\Mailbox”。

至此,配置邮件服务器的工作就结束了,下面介绍如何使用Jmail组件发送和接收电子邮件,首先要引用Jmail组件,具体引用的方法前面已经讲解,这里就不再赘述了。下面给出使用Jmail组件发送和接收电子邮件的关键代码供读者参考学习。

  • 使用Jmail组件发送电子邮件

当使用Jmail组件发送电子邮件时,首先创建一个MessageClass对象,设置好MessageClass 对象jmMessage的Charset、ISOEncodeHeaders、From和Subject等属性后调用其Send方法将邮件发送出去,具体代码如下。

        jmail.MessageClass jmMessage = new jmail.MessageClass();
        jmMessage.Charset = "GB2312";
        jmMessage.ISOEncodeHeaders = false;
        jmMessage.From = sender;
        jmMessage.Subject = subject;
        jmMessage.AddRecipient(receiver, "", "");
        if (this.upFile.PostedFile.ContentLength != 0)
        {
            string sFilePath = this.upFile.PostedFile.FileName;
            jmMessage.AddAttachment(@sFilePath, true, "");
        }
        jmMessage.Body = body;
        if (jmMessage.Send(eserver, true))
        {
            Page.RegisterClientScriptBlock("ok", "<script language=javascript>alert('发送成功')</script>");
        }
        else
            Page.RegisterClientScriptBlock("ok", "<script language=javascript>alert('发送失败,请仔细检查邮件服务器的设置是否正确!')</script>");
        jmMessage = null;

  •  使用Jmail组件接收电子邮件

若想接收邮箱中的电子邮件,首先必须与邮件服务器建立连接。通过Jmail组件中POP3Class类的Connect方法可以轻松地实现这一功能,Connect方法的参数分别代表邮箱用户名、密码、服务器地址和服务器端口号,具体代码如下。

jmail.POP3Class popMail = new jmail.POP3Class();
popMail.Connect(TxtPopUser.Text.Trim(),TxtPopPwd.Text.Trim(),TxtPopServer.Text.Trim(),Convert.ToInt32(TxtPopPort.Text.Trim()));

当与邮件服务器建立连接之后,创建一个Message对象,利用POP3Class类中的Messages方法将其初始化,Messages方法的参数代表邮箱中邮件的索引号,也就是邮箱中第几封邮件,如果要读取第一封邮件,则参数为1,如果读取第二封邮件,则参数为2,以此类推。具体代码如下。

jmail.POP3Class popMail = new jmail.POP3Class();
jmail.Message mailMessage;
mailMessage = popMail.Messages[Convert.ToInt32(TextBox1.Text)];
mailMessage.Charset = "GB2312";
mailMessage.Encoding = "Base64";
mailMessage.ISOEncodeHeaders = false;
txtpriority.Text = mailMessage.Priority.ToString();
txtSendMail.Text = mailMessage.From;
txtSubject.Text = mailMessage.Subject;
txtBody.Text = mailMessage.Body;
txtSize.Text = mailMessage.Size.ToString();

无标题页

无标题页
网站主页 | 广告业务 | 责任声明 | 联系我们 | 关于本站
2008 soAsp.net 使用前必读 京ICP备08009904号
本站为公益性网站,提供开发技术参考文章,不代表本站观点,不保证文章正确性。