|
概述 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; } |
|