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

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

编程思路

  首先我们设计一个邮件发送程序的交互界面,界面中包括用户输入邮件的收件人、发信人和主题组件的单行文本框,书写邮件内容的多行文本框等。然后为了能够实现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()方法中完成,设置好收件人、发信人和主题组件的单行文本框,书写邮件内容的多行文本框,以及附件中的浏览按钮、发送和退出按钮。

标签:smtp服务器,java服务器
0
投稿

猜你喜欢

  • 谈谈我用过的单用户博客(Blog)程序

    2008-07-21 13:01:00
  • LNMP系列教程之 解决sendmail不能发送邮件问题

    2023-11-03 02:30:36
  • 详解Linux下crontab的使用与注意事项

    2023-03-30 04:59:27
  • 网站流量与盈利终端

    2007-11-05 13:58:00
  • 一些感慨:网站管理员 - 站长

    2007-11-08 12:26:00
  • Google AdSense国内测试电子银行转账付款

    2009-03-19 18:26:00
  • 用wordpress实现提高adsense单价的方法

    2009-02-27 13:11:00
  • 关于网站备案收集的技巧攻略

    2008-04-15 15:15:00
  • 服务器使用的几个基本注意事项

    2009-09-19 20:23:00
  • 新手教程:Dedecms栏目自定义字段的方法

    2011-09-22 20:27:07
  • 清除DNS缓存信息法

    2012-04-13 12:03:18
  • CloudStack SSVM启动条件源码阅读与问题解决方法

    2023-07-12 23:00:40
  • WordPress 正文批量替换的两种方法

    2011-07-30 08:00:36
  • WordPress相册插件NextGEN Gallery安装使用详解

    2010-03-21 22:50:00
  • 通过googleAdSense赚取美元这4年

    2008-11-04 13:18:00
  • 阿里巴巴投资建教育公司 夸口三年培训百万人

    2009-10-30 16:51:00
  • 从关键词分析看百度算法

    2009-09-14 19:11:00
  • GoDaddy:如何给Password Vault添加密码

    2010-04-12 12:34:00
  • 虚拟机克隆linux centos6.5系统网卡配置图文教程

    2021-07-21 00:52:35
  • zblog新版后台功能预览

    2012-07-25 18:38:40
  • asp之家 网站运营 m.aspxhome.com