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


  
利用Jmail组件发送邮件

概述

Jmail是一个使用非常广泛的收发邮件的组件,其发送邮件速度快,功能丰富并且不需要Outlook之类的邮件客户端,而且Jmail组件是免费使用的。本实例将使用mail组件实现邮件发送。

 

关键技术

Jmail组件是一个使用广泛的收发邮件组件,其发送邮件速度快,功能丰富,并且不需要诸如Outlook之类的邮件客户端。

下面详细介绍Jmail组件。

(1)Jmail组件的属性和方法

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

表        Jmail组件常用属性及说明

属性

字段类型

说明

Charset

string

字符集

Encoding

string

设置附件的编码方式

ContentType

string

邮件的内容类型

ISOEncodeHeaders

string

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

Priority

int

邮件的优先级

From

string

发件人的E-mail地址

FromName

string

发件人姓名

Subject

string

邮件主题

MailServerUserName

string

登录邮件服务器的用户名

MailServerPassWord

string

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

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()

断开和邮件服务器的连接

(2)Jmail组件的使用

在使用Jmail组件之前,首先要添加对Jmail组件的引用。

在“解决方案资源管理器”中找到要添加引用的网站项目,单击鼠标右键,选择快捷菜单中的“添加引用”命令,在打开的“添加引用”对话框中选择“浏览”选项卡和要添加的jmail.dll文件,单击【确定】按钮,将Jmail组件添加到网站项目的引用中,然后就可以直接在后台代码中使用其属性和方法了。“添加引用”对话框。

 

注意:Jmail组件不是ASP.NET 2.0中自带的组件,使用时需要安装,Jmail安装文件参见本书附带光盘。

 

 

实现过程

 

用户设置完邮件服务器及邮件的所有信息后,单击【发送】按钮即可完成邮件的发送。实现该功能时,用户可以自定义一个发送邮件的方法,这样既可以提高代码的重用率,也能方便代码的管理,然后在【发送】按钮的Click事件中直接调用该方法即可。【发送】按钮的Click事件代码如下。

以下是引用片段:
    protected void btnSend_Click(object sender, EventArgs e)
    {
        sendEmail(txtSender.Text.Trim(), txtSUser.Text.Trim(), txtEUser.Text.Trim(), txtEPwd.Text.Trim(), txtReceiver.Text.Trim(), txtSubject.Text.Trim(), txtContent.Text.Trim(), txtEServer.Text.Trim());
    }

发送邮件的自定义sendEmail()方法如下。

以下是引用片段:
public void sendEmail(string sender, string senderuser, string euser, string epwd, string receiver, string subject, string body, string eserver)
    {
        jmail.MessageClass jmMessage = new jmail.MessageClass();
        jmMessage.Charset = "GB2312";
        jmMessage.ISOEncodeHeaders = false;
        jmMessage.From = sender;
        jmMessage.FromName = senderuser;
        jmMessage.Subject = subject;
        jmMessage.MailServerUserName = euser;
        jmMessage.MailServerPassWord = epwd;
        jmMessage.AddRecipient(receiver, "", "");
        if (ddlAccessories.Items.Count > 0)
        {
            for (int i = 0; i < ddlAccessories.Items.Count; i++)
            {
                string path = ddlAccessories.Items[i].Value;
                jmMessage.AddAttachment(@path, 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;
    }