当前位置: 技术问答>java相关
怎样在APPLET中发EMAIL?
来源: 互联网 发布时间:2015-04-11
本文导语: 怎样在APPLET中发EMAIL? | 为 了 得 到 反 馈, 我 们 在 设 计 主 页 时 经 常 将 自己 的email 地 址 嵌 在 主 页 上 以 便 读 者 与 我 们 联 系。 其 中 最 普 遍 的 作 ...
怎样在APPLET中发EMAIL?
|
为 了 得 到 反 馈, 我 们 在 设 计 主 页 时 经 常 将 自己 的email
地 址 嵌 在 主 页 上 以 便 读 者 与 我 们 联 系。 其 中 最 普 遍
的 作 法 是利 用HTML 语 言 加 上:
Feedback to Author! 这 样 作 的 缺 点 是 无 论 读 者 使用 的 是Int
ernet 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 senderHo
st) {
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 服 务 器 通 信 时 的
出 错 例 程。
地 址 嵌 在 主 页 上 以 便 读 者 与 我 们 联 系。 其 中 最 普 遍
的 作 法 是利 用HTML 语 言 加 上:
Feedback to Author! 这 样 作 的 缺 点 是 无 论 读 者 使用 的 是Int
ernet 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 senderHo
st) {
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 服 务 器 通 信 时 的
出 错 例 程。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。