JAVA研究室へ戻る


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){
		}
	}
}