新闻正文

在Java Applet中发Email (转载)

来源:JAVA天堂  JAVA学习者  2007-4-23 12:53:11 网友评论 0 条 字体:[ ] ~我要投稿!
站 (Sun May 17 21:42:51 1998) , 站内信件
【 以下文字转载自 program 讨论区 】
【 原文由 pipishi.bbs@bbs.nju.edu.cn 所发表 】
在设计主页时,为了得到访问用户的反馈信息,我们经常将自己的Ema
il地址嵌在主页上。其中最常用的做法是利用HTML语言:
<A HREF="mailto:someone@somecompany.com>Feedback to Aut
hor!</A>
但是,这样做的缺点是,无论读者使用的是Internet Explorer,还
是Netscape Navigatr ,在点击作者地址时都需另打开一个写作窗口,
使主页窗口被覆盖。这样读者在写信时看不到原文的内容,也不易进
行引用。笔者设计了一个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, hostFie
ld;
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.getTex
t(), hostField.gete xt());
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.getOutputStrea
m());
MsgArea.selectAll();
out.println("HELLO " + 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
以上程序在Windows 95、JDK1.1.2、Hotjava Browser 1.0环境
下调试通过。有兴趣的读者还可加上与SMTP服务器通信时的出错例程

________ _____ _____ ______________ _____
___ __ \___(_)________ ___(_) __ ___/___ /_ ___(_)
__ /_/ /__ / ___ __ \__ / _____ __ __ \__ /
_ ____/ _ / __ /_/ /_ / ____/ / _ / / /_ /
/_/ /_/ _ .___/ /_/ /____/ /_/ /_/ /_/
/_/
.[FROM: hsia.nju.edu.cn]


收藏到ViVi   收藏此页到365Key
上一篇: 利用Java实现zip压缩/解压缩 (转载)
下一篇: Java点滴(1)(转载)
用户名:新注册) 密码: 匿名评论 [所有评论]
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
本栏搜索
  • Google
   网站首页 -  网站地图 -  技术学习 -  网站投稿 -  帮助中心
Copyright 2003-2008 www.javah.net All Rights Reserved
2008 如果你喜欢本站 请收藏本站 并推荐给你的朋友一起分享