用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