mailapplet.java
来自「java网络高级编程的配套源码,java网络高级编程为清华出版社出版.」· Java 代码 · 共 191 行
JAVA
191 行
/*源程序清单12-27*/
import borland.jbcl.layout.*;
import borland.jbcl.control.*;
import java.awt.*;
import java.applet.Applet;
import java.util.StringTokenizer;
import java.net.Socket;
import java.io.PrintStream;
import java.lang.Exception;
import java.awt.event.ActionEvent;
public class MailApplet extends Applet
{
boolean isStandalone = false;
PaneLayout paneLayout1 = new PaneLayout();
Panel panel1 = new Panel();
Label label1 = new Label();
XYLayout xYLayout1 = new XYLayout();
Label label2 = new Label();
TextField textField1 = new TextField();
TextField textField2 = new TextField();
Label label3 = new Label();
TextArea textArea1 = new TextArea();
Button button1 = new Button();
Button button2 = new Button();
private int SMTP_PORT = 25;//邮件服务器缺省端口号
Frame frame=new Frame();
Color bgcolor=null;
String send="";
String get="";
public MailApplet()
{
}
public void init()
{
try
{
int c1=Integer.parseInt(getParameter("color1"));
int c2=Integer.parseInt(getParameter("color2"));
int c3=Integer.parseInt(getParameter("color3"));
bgcolor=new Color(c1,c2,c3);
SMTP_PORT=Integer.parseInt(getParameter("port"));
send=getParameter("send");
get=getParameter("get");
jbInit();
}
catch (Exception e)
{
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception
{
this.setSize(new Dimension(332, 280));
panel1.setBackground(bgcolor);
label1.setAlignment(2);
label1.setText("收信人地址:");
label2.setAlignment(2);
label2.setText("寄信人地址:");
label3.setAlignment(2);
label3.setText("内容:");
button1.setLabel("发 送");
button1.addActionListener(new MailApplet_button1_actionAdapter(this));
button2.setLabel("清 除");
button2.addActionListener(new MailApplet_button2_actionAdapter(this));
panel1.setLayout(xYLayout1);
this.setLayout(paneLayout1);
this.add(panel1, new PaneConstraints("panel1", "panel1", PaneConstraints.ROOT, 1.0f));
panel1.add(label1, new XYConstraints(10, 5, 80, 20));
panel1.add(label2, new XYConstraints(10, 30, 80, 20));
panel1.add(textField1, new XYConstraints(95, 5, 200, 20));
panel1.add(textField2, new XYConstraints(95, 30, 200, 20));
panel1.add(label3, new XYConstraints(10, 60, 80, 20));
panel1.add(textArea1, new XYConstraints(10, 80, 300, 150));
panel1.add(button1, new XYConstraints(50, 240, 80, 25));
panel1.add(button2, new XYConstraints(160, 240, 80, 25));
textField1.setText(get);
textField2.setText(send);
}
public String getAppletInfo()
{
return "Applet Information";
}
public String[][] getParameterInfo()
{
return null;
}
void sendMail()
{
String sender=textField2.getText();
String geter=textField1.getText();
String memo=textArea1.getText();
StringTokenizer st=new StringTokenizer(sender,"@");
int count=st.countTokens();
if(count!=2)
{
MessageDialog mdlg=new MessageDialog(frame,"邮件地址错误","你的发信人地址错误,请确认后重新发送!",1);
mdlg.show();
textField2.selectAll();
return;
}
String senderName=st.nextToken();
String senderHost=st.nextToken();
st=new StringTokenizer(geter,"@");
count=st.countTokens();
if(count!=2)
{
MessageDialog mdlg=new MessageDialog(frame,"邮件地址错误","你的收信人地址错误,请确认后重新发送!",1);
mdlg.show();
textField1.selectAll();
return;
}
String geterName=st.nextToken();
String geterHost=st.nextToken();
try
{
Socket s = new Socket(geterHost, SMTP_PORT);
PrintStream out = new PrintStream(s.getOutputStream());
out.println("HELLO: " + senderHost);
//邮件服务器不认证读者所输SMTP是否正确
out.println("MAIL FROM: " + senderName);
out.println("RCPT TO: " + geterName);
out.println("DATA");
out.println(memo);
out.println(".");
out.println("QUIT");
MessageDialog mdlg=new MessageDialog(frame,"邮件地址成功","恭喜,您发送的邮件已经发送成功!",1);
mdlg.show();
}
catch(Exception e)
{
System.out.println(e.toString());
MessageDialog mdlg=new MessageDialog(frame,"邮件发送错误",e.toString(),1);//"邮件发送出错,请确认后重新发送!",1);
mdlg.show();
return;
}
}
void button1_actionPerformed(ActionEvent e)
{
sendMail();
textArea1.setText("");
}
void button2_actionPerformed(ActionEvent e)
{
textField1.setText("");
textField2.setText("");
textArea1.setText("");
}
}
class MailApplet_button1_actionAdapter implements java.awt.event.ActionListener
{
MailApplet adaptee;
MailApplet_button1_actionAdapter(MailApplet adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.button1_actionPerformed(e);
}
}
class MailApplet_button2_actionAdapter implements java.awt.event.ActionListener
{
MailApplet adaptee;
MailApplet_button2_actionAdapter(MailApplet adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.button2_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?