怎 样 在APPLET 中 发EMAIL

在设计主页时,将email地址嵌在主页上让读者联系作者,传统做法有缺陷。作者设计了一个可嵌在主页上的JAVA APPLET解决此问题,还让无email地址的人也能反馈信息,并给出了源程序,该程序在特定环境下调试通过。
天 津 大 学 电 子 系 范 仲 方
zffan@public.tpt.tj.cn

--------------------------------------------------------------------------------


为 了 得 到 反 馈, 我 们 在 设 计 主 页 时 经 常 将 自 己 的email 地 址 嵌 在 主 页 上 以 便 读 者 与 我 们 联 系。 其 中 最 普 遍 的 作 法 是 利 用HTML 语 言 加 上:
Feedback to Author! 这 样 作 的 缺 点 是 无 论 读 者 使 用 的 是Internet Explorer 还 是Netscape Navigator, 在 点 击 作 者 地 址 时 都 需 另 打 开 一 个 写 作 窗 口, 使 主 页 窗 口 被 覆 盖。 这 样 读 者 在 写 信 时 看 不 到 原 文 的 内 容 也 不 易 进 行 引 用。 笔 者 设 计 了 一 个JAVA APPLET 可 嵌 在 主 页 上, 解 决 了 这 个 问 题, 同 时 使 没 有email 地 址 的 人 也 可 反 馈 信 息。 源 程 序 如 下:

import java.awt.*;
import java.applet.*;
import java.net.*;
import java.io.*;

public class Javamail extends Applet {

private int SMTP_PORT = 25;
//邮件服务器缺省端口号
private String appletSource = "202.99.96.140";
//作者邮件服务器IP
private TextArea MsgArea;
private TextField senderField, recipientField, hostField;

public void init() {

setLayout(new BorderLayout());
Panel fields = new Panel();
fields.setLayout(new GridLayout(3, 1));
Panel recPanel = new Panel();
recPanel.setLayout(new GridLayout(2, 1));
recPanel.add(new Label("Recipient"));
recipientField = new TextField("zffan");
// 作 者 邮 件 服 务 器 用 户 名
recPanel.add(recipientField);
fields.add(recPanel);
Panel sendPanel = new Panel();
sendPanel.setLayout(new GridLayout(2, 1));
sendPanel.add(new Label("Sender"));
senderField = new TextField("Your Name");
// 由 读 者 填 其 用 户 名
sendPanel.add(senderField);
fields.add(sendPanel);
Panel hostPanel = new Panel();
hostPanel.setLayout(new GridLayout(2, 1));
hostPanel.add(new Label("Host"));
hostField = new TextField("YourCompany.com");
// 由 读 者 填 其 邮 件 服 务 器IP
hostPanel.add(hostField);
fields.add(hostPanel);
add("North", fields);
MsgArea = new TextArea();
add("Center", MsgArea);
add("South", new Button("SEND"));
}

public boolean handleEvent(Event e) {

if (e.id == Event.WINDOW_DESTROY)
System.exit(0);
return super.handleEvent(e);
}

public boolean action(Event e, Object arg) {

if (arg.equals("SEND"))
sendMsg(senderField.getText(),
recipientField.getText(), hostField.getText());
else
return super.action(e, arg);
return true;
}

private void sendMsg(String sender, String recipient, String senderHost) {

try { // 与 邮 件 服 务 器 通 信

Socket s = new Socket(appletSource, SMTP_PORT);
PrintStream out = new PrintStream(s.getOutputStream());
MsgArea.selectAll();
out.println("HELO " + senderHost);
//邮件服务器不认证读者所输SMTP是否正确
out.println("MAIL FROM: " + sender);
out.println("RCPT TO: " + recipient);
out.println("DATA");
out.println(MsgArea.getSelectedText());
out.println(".");
out.println("QUIT");
}

catch(Exception e) { System.out.println("Error " + e); }
}
} //Javamail

以 上 程 序 在Win95, JDK1.1.2, Hotjava Browser 1.0 环 境 下 调 试 通 过。 有 兴 趣 的 读 者 还 可 加 上 与SMTP 服 务 器 通 信 时 的 出 错 例 程。
Delphi 12.3 作为一款面向 Windows 平台的集成开环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi 与 Microsoft Excel 之间的高效桥梁,使开者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件与组件包的形式提供,开者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建与编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式与宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置与依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开者社区的集体贡献,通过定期更新以适配新版开环境与 Office 套件,并修复已现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开团队能更专注于业务逻辑与用户体验的优化,从而提升整体开效率与软件质量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值