请关注: 怎么从邮件服务器接收邮件列表,和身份验证??下面有发送程序。
//邮件发送程序
import java.awt.*;
import java.io.*;
import java.net.*;
public class MailSample extends Frame {
public static void main(String args[]){
MainFrame mf = new MainFrame();
mf.setSize(400,300);
mf.show();
}
}
class Mail {
private String mailServer, recipient, adresser, subject, content;
public void sendMail() {
try {
Socket s = new Socket(mailServer, 25);
BufferedReader in = new BufferedReader
(new InputStreamReader(s.getInputStream(), "8859_1"));
BufferedWriter out = new BufferedWriter
(new OutputStreamWriter(s.getOutputStream(), "8859_1"));
send(in, out, "MAIL FROM: " + adresser);
send(in, out, "RCPT TO: " + recipient);
send(in, out, "DATA");
send(out, "Subject: " + subject);
send(out, "From: " + adresser);
send (out, "\n");
send(out, content);
send(out, "\n.\n");
send(in, out, "QUIT");
s.close();
}
catch (Exception e) { e.printStackTrace(); }
}
public void setKey(MainFrame ms){
mailServer = ms.t0.getText();
recipient = ms.t1.getText();
adresser = ms.t2.getText();
subject = ms.t3.getText();
content = ms.t4.getText();
}
public void displayKey(){
System.out.println("Mailserver : " + mailServer);
System.out.println("Recipient : " + recipient);
System.out.println("Adresser : " + adresser);
System.out.println("Subject : " + subject);
System.out.println("Content : " + content);
}
public void send(BufferedReader in, BufferedWriter out, String s) {
try {
out.write(s + "\n");
out.flush();
System.out.println(s);
s = in.readLine();
System.out.println(s);
}
catch (Exception e) { e.printStackTrace(); }
}
public void send(BufferedWriter out, String s) {
try {
out.write(s + "\n");
out.flush();
System.out.println(s);
}
catch (Exception e) { e.printStackTrace(); }
}
}
class MainFrame extends Frame{
Button b = new Button("发送");
MenuBar mb = new MenuBar();
Menu file = new Menu("File");
Menu edit = new Menu("Edit");
Menu help = new Menu("Help");
MenuItem[] f = { new MenuItem("Open"),new MenuItem("Exit") };
TextField t0 = new TextField("", 30);
TextField t1 = new TextField("", 30);
TextField t2 = new TextField("", 30);
TextField t3 = new TextField("", 30);
TextArea t4 = new TextArea("",4, 30);
Label l0 = new Label("邮件服务器");
Label l1 = new Label("发件人");
Label l2 = new Label("收件人");
Label l3 = new Label("邮件标题");
Label l4 = new Label("邮件正文");
public MainFrame() {
for(int i = 0; i < f.length; i++) file.add(f[i]);
mb.add(file);
mb.add(edit);
mb.add(help);
setMenuBar(mb);
this.setLayout(new GridLayout(6,2));
add(l0); add(t0);
add(l1); add(t1);
add(l2); add(t2);
add(l3); add(t3);
add(l4); add(t4);
add(b);
}
public boolean handleEvent(Event evt) {
if(evt.id == Event.WINDOW_DESTROY)
System.exit(0);
else
return super.handleEvent(evt);
return true;
}
public boolean action(Event evt, Object arg) {
if(evt.target.equals(b))
{
Mail mail = new Mail();
mail.setKey(this);
mail.displayKey();
mail.sendMail();
}
else
return super.action(evt, arg);
return true;
}
}