在Java Applet中发Email (转载)

<script type="text/javascript"> google_ad_client = "pub-8800625213955058"; /* 336x280, 创建于 07-11-21 */ google_ad_slot = "0989131976"; google_ad_width = 336; google_ad_height = 280; // </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 在设计主页时,为了得到访问用户的反馈信息,我们经常将自己的Ema il地址嵌在主页上。其中最常用的做法是利用HTML语言但是,这样做的缺点是,无论读者使用的是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服务器通信时的出错例程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值