网站运营
位置:首页>> 网站运营>> 用Java编程实现SMTP服务器功能(2)

用Java编程实现SMTP服务器功能(2)

 来源:asp之家 发布时间:2010-03-13 18:46:00 

标签:smtp服务器,java服务器

编程思路

  首先我们设计一个邮件发送程序的交互界面,界面中包括用户输入邮件的收件人、发信人和主题组件的单行文本框,书写邮件内容的多行文本框等。然后为了能够实现E-mail的发送和设置,我们设计一个SmtpMail类,它封装了与邮件服务器之间的Socket 通信操作,以及SMTP 命令的发送和响应信息的接收。

  编程技巧说明

  1.设置窗体和组件

  我们设计了一个MailSendFrame()类继承Frame 对象,作为容纳组件的主窗体。Main()函数实现将窗体启动时置于屏幕的正中央,窗口定义代码如下:

public static void main(String[] args) {
mailSendFrame mailSendFrame = new mailSendFrame();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = mailSendFrame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
mailSendFrame.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
mailSendFrame.setVisible(true);
mailSendFrame.show();
}


  在Main()函数中,首先利用代表系统信息的Toolkit对象得到当前系统中设置的屏幕分辨率,并且用分辨率和窗体的大小作比较,然后,调用MailSendFrame的SetLocation()方法设置窗体的左上角坐标,使窗体的中心和屏幕的中心正好重合,从而将窗体居中。

//组件实例变量的定义
Panel panelMain = new Panel();
Panel panelUp = new Panel();
Panel panel3 = new Panel();
Panel panel4 = new Panel();
Panel panel6 = new Panel();
Panel panel7 = new Panel();
TextField txtServer = new TextField();
TextField txtTo = new TextField();
TextField txtFrom = new TextField();
TextField txtSubject = new TextField();
Panel panel8 = new Panel();
Label lblFile = new Label();
Button cmdBrowse = new Button();
Panel panelDown = new Panel();
TextArea txtMail = new TextArea();
Panel panel10 = new Panel();
Button cmdSend = new Button();
Button cmdExit = new Button();
.......
.......
panelMain.add(panelUp, null);
panelUp.add(panel3, null);
panel3.add(new Label("发信服务器:"), null);
panel3.add(txtServer, null);
panelUp.add(panel4, null);
panel4.add(new Label("收件人:"), null);
panel4.add(txtTo, null);
panelUp.add(panel6, null);
panelUp.add(panel7, null);
panel7.add(new Label("主题:"), null);
panel7.add(txtSubject, null);
panel6.add(new Label("发件人:"), null);
panel6.add(txtFrom, null);
panelUp.add(panel8, null);
panel8.add(new Label("附件: "), null);
panel8.add(lblFile, null);
panel8.add(cmdBrowse, null);
panelMain.add(panelDown, null);
panelDown.add(txtMail, BorderLayout.CENTER);
panelDown.add(panel10, BorderLayout.SOUTH);
panel10.add(cmdSend, null);
panel10.add(cmdExit, null);
panelDown.add(new Label(" "), BorderLayout.EAST);
panelDown.add(new Label(" "), BorderLayout.WEST);
........
........


  窗体组件的定义都是在Init()方法中完成,设置好收件人、发信人和主题组件的单行文本框,书写邮件内容的多行文本框,以及附件中的浏览按钮、发送和退出按钮。

0
投稿

猜你喜欢

手机版 网站运营 asp之家 www.aspxhome.com