您的位置:首页 > 大数据 > 人工智能

如何使用JMAIL组件实现邮件的发送与接收

2007-11-01 14:22 1026 查看
如何使用JMAIL组件实现邮件的发送与接收

运行该示例需要注意的地方:
1.jmail.dll组件需要在运行该程序的机器上进行注册,可通过如下方式注册:
进入Dos模式,输入"regsvr32 jmail.dll组件所在路径",然后回车,即可在机器上完成jmail.dll组件的注册。
2.如果您的机器上装有瑞星等杀毒软件,请关闭其“邮件发送监控,及邮件接受监控”功能。
3.正确设置邮件服务器。

发送

<%@ Page language="c#" Codebehind="JmailSend.aspx.cs"
AutoEventWireup="false" Inherits="CommonFunction.NewMail" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>NewMail</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="NewMail" method="post" runat="server"
enctype="multipart/form-data">
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 88px; WIDTH:
421px; POSITION: absolute; TOP: 24px; HEIGHT: 79px"
cellSpacing="1" cellPadding="1" width="421" border="1">
<TR>
<TD><FONT face="宋体">SMTP邮件服务器</FONT></TD>
<TD>
<asp:TextBox id="TxtSmtServer" runat="server"
Width="195px" Height="26px">mail.netandtv.com</asp:TextBox>
<asp:RequiredFieldValidator
id="RequiredFieldValidator1" runat="server" ErrorMessage="请输入SMTP邮件服务器地址!"
ControlToValidate="TxtSmtServer">*</asp:RequiredFieldValidator></TD>
</TR>
<TR>
<TD><FONT face="宋体">SMTP邮件用户</FONT></TD>
<TD>
<asp:TextBox id="TxtSmtpUser" runat="server"
Width="195px" Height="26px">songxd@netandtv.com</asp:TextBox>
<asp:RequiredFieldValidator
id="RequiredFieldValidator2" runat="server" ErrorMessage="请输入SMTP邮件用户!"
ControlToValidate="TxtSmtpUser">*</asp:RequiredFieldValidator></TD>
</TR>
<TR>
<TD>SMTP邮件密码</TD>
<TD>
<asp:TextBox id="TxtSmtpPwd" runat="server"
Width="195px" Height="26px">sxd999</asp:TextBox>
<asp:RequiredFieldValidator
id="RequiredFieldValidator3" runat="server" ErrorMessage="请输入SMTP邮件密码"
ControlToValidate="TxtSmtpPwd">*</asp:RequiredFieldValidator></TD>
</TR>
<TR>
<TD>SMTP邮件服务器端口</TD>
<TD><FONT face="宋体">
<asp:TextBox id="TxtSmtpPort" runat="server"
Width="195px" Height="26px">25</asp:TextBox>
<asp:RequiredFieldValidator
id="RequiredFieldValidator4" runat="server" ErrorMessage="请输入SMTP邮件服务器端口"
ControlToValidate="TxtSmtpPort">*</asp:RequiredFieldValidator></FONT></TD>
</TR>
<TR>
<TD>邮件地址</TD>
<TD>
<asp:TextBox id="TxtEmail" runat="server"
Width="195px" Height="26px">songxd@netandtv.com</asp:TextBox>
<asp:RequiredFieldValidator
id="RequiredFieldValidator9" runat="server" ErrorMessage="请输入邮件地址"
ControlToValidate="TxtEmail">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator
id="RegularExpressionValidator1" runat="server"
ErrorMessage="RegularExpressionValidator"
ControlToValidate="TxtEmail"
ValidationExpression="/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*">*</asp:RegularExpressionValidator></TD>
</TR>
<TR>
<TD>您的名字</TD>
<TD><FONT face="宋体">
<asp:TextBox id="TxtName" runat="server"
Width="195" Height="26">songxd</asp:TextBox>
<asp:RequiredFieldValidator
id="RequiredFieldValidator10" runat="server" ErrorMessage="请输入您的名字!"
ControlToValidate="TxtName">*</asp:RequiredFieldValidator></FONT></TD>
</TR>
<TR>
<TD><FONT face="宋体">邮件主题</FONT></TD>
<TD>
<asp:TextBox id="txtSubject" runat="server"
Width="193px">songsongsongsogn</asp:TextBox></TD>
</TR>
<TR>
<TD><FONT face="宋体">邮件内容</FONT></TD>
<TD><FONT face="宋体">
<asp:TextBox id="txtContent" runat="server"
Width="194px">songsongsongsogn</asp:TextBox></FONT></TD>
</TR>
<TR>
<TD><FONT face="宋体">附件</FONT></TD>
<TD><FONT face="宋体"> <INPUT id="upFile" type="file"
name="File1" runat="server"></FONT></TD>
</TR>
<TR>
<TD><FONT face="宋体">收件人</FONT></TD>
<TD>
<asp:TextBox id="txtReciver"
runat="server"></asp:TextBox></TD>
</TR>
<TR>
<TD colSpan="2" align="center"><FONT face="宋体">
<asp:Button id="btnSend" runat="server"
Text="发送测试邮件"></asp:Button></FONT></TD>
</TR>
<TR>
<TD align="center" colSpan="2">
<asp:ValidationSummary id="ValidationSummary1"
runat="server" Width="269px" Height="13px"></asp:ValidationSummary></TD>
</TR>
</TABLE>
</form>
</body>
</HTML>

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 jmail;
namespace CommonFunction
{
/// <summary>
/// NewMail 的摘要说明。
/// </summary>
public class NewMail : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TxtSmtServer;
protected System.Web.UI.WebControls.TextBox TxtSmtpUser;
protected System.Web.UI.WebControls.RequiredFieldValidator
RequiredFieldValidator1;
protected System.Web.UI.WebControls.RequiredFieldValidator
RequiredFieldValidator2;
protected System.Web.UI.WebControls.RequiredFieldValidator
RequiredFieldValidator3;
protected System.Web.UI.WebControls.TextBox TxtSmtpPwd;
protected System.Web.UI.WebControls.RequiredFieldValidator
RequiredFieldValidator4;
protected System.Web.UI.WebControls.TextBox TxtSmtpPort;
protected System.Web.UI.WebControls.RequiredFieldValidator
RequiredFieldValidator9;
protected System.Web.UI.WebControls.TextBox TxtEmail;
protected System.Web.UI.WebControls.RegularExpressionValidator
RegularExpressionValidator1;
protected System.Web.UI.WebControls.TextBox TxtName;
protected System.Web.UI.WebControls.TextBox txtContent;
protected System.Web.UI.WebControls.TextBox txtSubject;
protected System.Web.UI.HtmlControls.HtmlInputFile upFile;
protected System.Web.UI.WebControls.RadioButtonList radioCheck;
protected System.Web.UI.WebControls.ValidationSummary
ValidationSummary1;
protected System.Web.UI.WebControls.Button btnSend;
protected System.Web.UI.WebControls.TextBox txtReciver;
protected System.Web.UI.WebControls.RequiredFieldValidator
RequiredFieldValidator10;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnSend.Click += new
System.EventHandler(this.btnSend_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void btnSend_Click(object sender, System.EventArgs e)
{
jmail.MessageClass oJmailMessage = new
jmail.MessageClass();//建立发邮件类

oJmailMessage.Charset = "GB2312";// 字符集
oJmailMessage.Encoding = "BASE64";//附件的编码格式
oJmailMessage.ContentType = "text/html";
oJmailMessage.ISOEncodeHeaders = false;//是否将信头编码成iso-8859-1字符集
oJmailMessage.Priority = Convert.ToByte(1);// 优先级

oJmailMessage.From = TxtEmail.Text.Trim();//发送人邮件地址
oJmailMessage.FromName = TxtName.Text.Trim();//发送人姓名
oJmailMessage.Subject = txtSubject.Text.Trim();// 邮件主题
oJmailMessage.MailServerUserName =
TxtSmtpUser.Text.Trim();//身份验证的用户名
oJmailMessage.MailServerPassWord =
TxtSmtpPwd.Text.Trim();//用户密码

//添加一个收件人,抄送人和密送人的添加和该方法是一样的,只是分别使用AddRecipientCC和RecipientBCC两个属性
//要是需要添加多个收件人,则重复下面的语句即可。添加多个抄送和密送人的方法一样
oJmailMessage.AddRecipient(txtReciver.Text.Trim(),"","");
if("" != upFile.PostedFile.FileName)
{
string attpath = upFile.PostedFile.FileName;

oJmailMessage.AddAttachment(@attpath,true,attpath.Substring(attpath.LastIndexOf(".")+1,3));//添加附件
}
oJmailMessage.Body = txtContent.Text.Trim();//邮件内容

if(oJmailMessage.Send(TxtSmtServer.Text.Trim(),false))
{
Response.Write("发送成功!");
}
else
{
Response.Write("发送失败,请检查邮件服务器的设置!");
}

oJmailMessage = null;
}

}
}

接收

<%@ Page language="c#" Codebehind="JmailRecive.aspx.cs"
AutoEventWireup="false" Inherits="CommonFunction.JmailConfig" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>JmailConfig</title>
<meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5"
name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="JmailConfig" method="post" runat="server">
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 288px; POSITION:
absolute; TOP: 16px">
<TR>
<TD><FONT face="宋体"></FONT><FONT
face="宋体"></FONT><FONT face="宋体"></FONT><FONT face="宋体"></FONT><BR>
<STRONG>邮件服务器设置</STRONG></TD>
</TR>
<TR>
<TD style="WIDTH: 165px">POP3邮件服务器</TD>
<TD><asp:textbox id="TxtPopServer" runat="server"
Height="26px" Width="195px"></asp:textbox><asp:requiredfieldvalidator
id="RequiredFieldValidator5" runat="server"
ControlToValidate="TxtPopServer"
ErrorMessage="请输入POP3邮件服务器地址!">*</asp:requiredfieldvalidator></TD>
</TR>
<TR>
<TD style="WIDTH: 165px">POP3邮件用户名</TD>
<TD><asp:textbox id="TxtPopUser" runat="server"
Height="26px" Width="195px"></asp:textbox><asp:requiredfieldvalidator
id="RequiredFieldValidator6" runat="server" ControlToValidate="TxtPopUser"
ErrorMessage="请输入POP3邮件用户">*</asp:requiredfieldvalidator></TD>
</TR>
<TR>
<TD style="WIDTH: 165px">POP3邮件密码</TD>
<TD><asp:textbox id="TxtPopPwd" runat="server"
Height="26px" Width="195px"
TextMode="Password"></asp:textbox><asp:requiredfieldvalidator
id="RequiredFieldValidator7" runat="server" ControlToValidate="TxtPopPwd"
ErrorMessage="请输入POP3邮件密码!">*</asp:requiredfieldvalidator></TD>
</TR>
<TR>
<TD style="WIDTH: 165px">POP3邮件服务器端口</TD>
<TD><asp:textbox id="TxtPopPort" runat="server"
Height="26px" Width="195px"></asp:textbox><asp:requiredfieldvalidator
id="RequiredFieldValidator8" runat="server" ControlToValidate="TxtPopPort"
ErrorMessage="请输入POP3邮件服务器端口!">*</asp:requiredfieldvalidator></TD>
</TR>
<TR>
<TD style="HEIGHT: 27px" colSpan="2">
<P align="center"><asp:button id="BtnTake"
runat="server" Width="79px" Text="收取邮件"></asp:button></P>
</TD>
</TR>
<TR>
<TD align="center" colSpan="2">
<asp:validationsummary id="ValidationSummary1"
runat="server" Width="269px" Height="13px"></asp:validationsummary></TD>
</TR>
<TR>
<TD align="center" colSpan="2"><asp:panel
id="panMailInfo" runat="server" Width="100%" Visible="False"><FONT
face="宋体">
<TABLE id="Table2" cellSpacing="1"
cellPadding="1" width="100%" border="1">
<TR>
<TD>发件人</TD>
<TD>
<asp:TextBox id="txtSender"
runat="server" Width="234px"></asp:TextBox></TD>
</TR>
<TR>
<TD>发件人邮箱地址</TD>
<TD>
<asp:TextBox id="txtSendMail"
runat="server" Width="233px"></asp:TextBox></TD>
</TR>
<TR>
<TD>邮件主题</TD>
<TD>
<asp:TextBox id="txtSubject"
runat="server" Width="235px"></asp:TextBox></TD>
</TR>
<TR>
<TD>优先级</TD>
<TD>
<asp:TextBox id="txtpriority"
runat="server"></asp:TextBox></TD>
</TR>
<TR>
<TD>邮件大小</TD>
<TD>
<asp:TextBox id="txtSize"
runat="server"></asp:TextBox></TD>
</TR>
<TR>
<TD>附件路径</TD>
<TD>
<asp:TextBox id="txtAttPath"
runat="server"></asp:TextBox></TD>
</TR>
<TR>
<TD vAlign="top">邮件内容</TD>
<TD>
<asp:TextBox id="txtBody"
runat="server" Width="236px" Height="90px"
TextMode="MultiLine"></asp:TextBox></TD>
</TR>
</TABLE>
</FONT>
</asp:panel></TD>
</TR>
</TABLE>
</form>
</body>
</HTML>

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 jmail;
namespace CommonFunction
{
/// <summary>
/// JmailConfig 的摘要说明。
/// </summary>
public class JmailConfig : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TxtPopServer;
protected System.Web.UI.WebControls.RequiredFieldValidator
RequiredFieldValidator5;
protected System.Web.UI.WebControls.TextBox TxtPopUser;
protected System.Web.UI.WebControls.RequiredFieldValidator
RequiredFieldValidator6;
protected System.Web.UI.WebControls.TextBox TxtPopPwd;
protected System.Web.UI.WebControls.RequiredFieldValidator
RequiredFieldValidator7;
protected System.Web.UI.WebControls.TextBox TxtPopPort;
protected System.Web.UI.WebControls.RequiredFieldValidator
RequiredFieldValidator8;
protected System.Web.UI.WebControls.Button BtnTake;
protected System.Web.UI.WebControls.TextBox txtSender;
protected System.Web.UI.WebControls.TextBox txtSubject;
protected System.Web.UI.WebControls.Panel panMailInfo;
protected System.Web.UI.WebControls.TextBox txtSendMail;
protected System.Web.UI.WebControls.TextBox txtpriority;
protected System.Web.UI.WebControls.TextBox txtSize;
protected System.Web.UI.WebControls.TextBox txtBody;
protected System.Web.UI.WebControls.TextBox txtAttPath;
protected System.Web.UI.WebControls.ValidationSummary
ValidationSummary1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.BtnTake.Click += new
System.EventHandler(this.BtnTake_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void BtnTake_Click(object sender, System.EventArgs e)
{
jmail.POP3Class popMail = new POP3Class();//建立收邮件对象
jmail.Message mailMessage; //建立邮件信息接口
jmail.Attachments atts;//建立附件集接口
jmail.Attachment att;//建立附件接口

try
{

popMail.Connect(TxtPopUser.Text.Trim(),TxtPopPwd.Text.Trim(),TxtPopServer.Text.Trim(),Convert.ToInt32(TxtPopPort.Text.Trim()));

if(0 < popMail.Count)
//如果收到邮件
{
for(int i=1;i <= popMail.Count;i++)
//根据取到的邮件数量依次取得每封邮件
{
mailMessage = popMail.Messages[i];
//取得一条邮件信息
atts = mailMessage.Attachments;
//取得该邮件的附件集合
mailMessage.Charset = "GB2312";
//设置邮件的编码方式
mailMessage.Encoding = "Base64";
//设置邮件的附件编码方式
mailMessage.ISOEncodeHeaders = false;
//是否将信头编码成iso-8859-1字符集
txtpriority.Text =
mailMessage.Priority.ToString();
//邮件的优先级
txtSendMail.Text = mailMessage.From;
//邮件的发送人的信箱地址
txtSender.Text = mailMessage.FromName;
//邮件的发送人
txtSubject.Text = mailMessage.Subject;
//邮件主题
txtBody.Text = mailMessage.Body;
//邮件内容
txtSize.Text = mailMessage.Size.ToString();
//邮件大小

for(int j=0;j<atts.Count;j++)
{
att = atts[j];
//取得附件
string attname = att.Name;
//附件名称

att.SaveToFile("e://attFile//"+attname);
//上传到服务器

}

}
panMailInfo.Visible = true;
att = null;
atts = null;
}
else
{
Response.Write("没有新邮件!");
}

popMail.DeleteMessages();
popMail.Disconnect();
popMail = null;
}
catch
{
Response.Write("Warning!请检查邮件服务器的设置是否正确!");
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: