怎 樣 在APPLET 中 發EMAIL (轉)
怎 樣 在APPLET 中 發EMAIL (轉)[@more@]天 津 大 學 電 子 系 範 仲 方
zffan@public.tpt.tj.cn
--------------------------------------------------------------------------------
為 了 得 到 反 饋, 我 們 在 設 計 主 頁 時 經 常 將 自 己 的e 地 址 嵌 在 主 頁 上 以 便 讀 者 與 我 們 聯 系。 其 中 最 普 遍 的 作 法 是 利 用HTML 語 言 加 上:
Feeack to Author! 這 樣 作 的 缺 點 是 無 論 讀 者 使 用 的 是Inte Explorer 還scape Navigator, 在 點 擊 作 者 地 址 時 都 需 另 打 開 一 個 寫 作 窗 口, 使 主 頁 窗 口 被 覆 蓋。 這 樣 讀 者 在 寫 信 時 看 不 到 原 文 的 內 容 也 不 易 進 行 引 用。 筆 者 設 計 了 一 個 APPLET 可 嵌 在 主 頁 上, 解 決 了 這 個 問 題, 同 時 使 沒 有 地 址 的 人 也 可 反 饋 信 息。 源 程 序 如 下:
import java.awt.*;
import java.applet.*;
import java.net.*;
import java.io.*;
public class Javamail extends Applet {
private int SMTP_PORT = 25;
//預設埠號
private String applet = "202.99.96.140";
//作者
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, 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.All();
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, 1.1.2, Hotjava Browser 1.0 環 境 下 調 試 通 過。 有 興 趣 的 讀 者 還 可 加 上 與SMTP 服 務 器 通 信 時 的 出 錯 例 程。
zffan@public.tpt.tj.cn
--------------------------------------------------------------------------------
為 了 得 到 反 饋, 我 們 在 設 計 主 頁 時 經 常 將 自 己 的e 地 址 嵌 在 主 頁 上 以 便 讀 者 與 我 們 聯 系。 其 中 最 普 遍 的 作 法 是 利 用HTML 語 言 加 上:
Feeack to Author! 這 樣 作 的 缺 點 是 無 論 讀 者 使 用 的 是Inte Explorer 還scape Navigator, 在 點 擊 作 者 地 址 時 都 需 另 打 開 一 個 寫 作 窗 口, 使 主 頁 窗 口 被 覆 蓋。 這 樣 讀 者 在 寫 信 時 看 不 到 原 文 的 內 容 也 不 易 進 行 引 用。 筆 者 設 計 了 一 個 APPLET 可 嵌 在 主 頁 上, 解 決 了 這 個 問 題, 同 時 使 沒 有 地 址 的 人 也 可 反 饋 信 息。 源 程 序 如 下:
import java.awt.*;
import java.applet.*;
import java.net.*;
import java.io.*;
public class Javamail extends Applet {
private int SMTP_PORT = 25;
//預設埠號
private String applet = "202.99.96.140";
//作者
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, 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.All();
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, 1.1.2, Hotjava Browser 1.0 環 境 下 調 試 通 過。 有 興 趣 的 讀 者 還 可 加 上 與SMTP 服 務 器 通 信 時 的 出 錯 例 程。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988591/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 怎樣在APPLET中發EMAIL javamail (轉)APPAIJava
- 在網頁中怎樣使文字旋轉? (轉)網頁
- 怎樣在敏捷開發中做到“事半功倍”敏捷
- 在Oracle中怎樣才能使用索引(轉)Oracle索引
- 怎樣在C++Builder中建立使用DLL (轉)UI
- 在Windows中怎樣尋找自啟動程式(轉)Windows
- 在winnt/win9x下用blat發email的示例(轉)AI
- 翻譯|在Rust中怎樣panicRust
- 怎樣在VC++中訪問和修改登錄檔 (轉)C++
- 可以在applet中執行MS Word嗎?APP
- 怎樣在squid中透過URL進行訪問控制(轉)UI
- 怎樣在遊戲設計製作中實現指令碼控制(轉)遊戲設計指令碼
- 怎樣在Python中執行cmdPython
- 用PHP編寫email群發器 (轉)PHPAI
- Delphi發emailAI
- 在開發過程中怎樣利用單元和功能測試
- iOS 開發中,怎樣用好 Notifications?iOS
- 怎樣在PB中實現檔案的複製與刪除 (轉)
- 怎樣在 Laravel 中處理前端認證Laravel前端
- 怎樣在Ubuntu 14.04中安裝JavaUbuntuJava
- 轉行學Java開發怎麼樣?Java
- 字串: 怎樣在ANSI 和 UNICODE間做轉換 (轉)字串Unicode
- 中國的汽車現在發展怎麼樣
- 怎樣在Apache上安裝MOD_SSL (轉)Apache
- excel日期格式轉換中,怎樣將“/”轉換成“-”Excel
- 用oracle發emailOracleAI
- 在遊戲中,“我”是一種怎樣的存在?遊戲
- 怎樣在資料庫中儲存貨幣資料庫
- 怎樣在Google瀏覽器中避免WebRTC漏洞Go瀏覽器Web
- 資料視覺化是怎樣在智慧農業中發揮作用的?視覺化
- 《轉載》免費OA系統工作流怎樣在企業中運用
- 怎樣在IE工具欄上加入自己的工具 (轉)
- 怎樣在QueryBuilder中使用PostgreSQL中的?操作符UISQL
- 怎樣在Xcode 6中使用向量圖形XCode
- 怎樣在網站中防止SQL隱碼攻擊?網站SQL
- 在Linux中,目錄結構是怎樣的?Linux
- 怎樣發現專案的真正價值(轉)
- 可否在JSP中向applet傳遞多個引數?JSAPP