JAVAアプレットのソケットサンプルとしてメールを送るアプレットを作成してみました
サンプルは ダウンロード
した中に入っています。
パラメータは server 送信するサーバー名 (例:www.pionet.net) to 自分のアドレス (例:kitaro@pionet.net) sub タイトル
となっていますが、すべてのパラメータを与えなければ送信しないようになっています。 送信文字列のうち、送り手と内容をAWTで自動入手しますが、内容について一切チェック を行っていませんので、エラーチェック等を追加した方がよいでしょう。
// JAVA applet sample 'MailToString2.java' for kitaro C3Lab JAVA lab // copyright (c) by kitaro 1996 import java.applet.*; import java.io.*; import java.net.*; import java.awt.*; public class MailToString2 extends java.applet.Applet { // String sSocket,sFrom,sTo,sSub,sStr; int x,y; // awt object Button sendButton; TextField tfFrom; TextArea taStr; // public void init(){ String temp; sSocket = getParameter("server"); // "www.pionet.net" sTo = getParameter("to" ); // "kitaro@pionet.net" sSub = getParameter("sub" ); // "sample" temp = getParameter("x"); if(temp==null)temp="5"; x = Integer.valueOf( temp ).intValue(); temp = getParameter("y"); if(temp==null)temp="20"; y = Integer.valueOf( temp ).intValue(); add( new Label("あなたのアドレス") ); add( tfFrom = new TextField(x) ); add( new Label("内容") ); add( taStr = new TextArea(x,y) ); add( sendButton = new Button("送信する") ); } public boolean action(Event evt,Object action){ if( !(evt.target instanceof Button)) return false; String t = (String)action; if( t=="Send" ) SendMain(); repaint(); return true; } //--------------------------------------- public void SendMain(){ try { sFrom = tfFrom.getText(); sStr = taStr.getText(); // if ((sSocket!=null)&&(sFrom!=null) &&(sTo!=null)&&(sSub!=null)&&(sStr!=null)) { Socket s = new Socket(sSocket,25); PrintStream ps = new PrintStream(s.getOutputStream()); ps.println("HELO " + sSocket); ps.println("MAIL FROM: "+ sFrom); ps.println("RCPT TO: " + sTo); ps.println("DATA"); ps.println("Subject: " + sSub); ps.println(sStr); ps.println("."); ps.println("QUIT"); ps.close(); s = null; } }catch(Exception e){ } } }