import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;import java.util.*;
import javax.swing.JOptionPane;class Twin extends Frame implements ActionListener{
TextField text1,text2,namet,passwordt,sendt,shout,zhut;
Label label1,label2,name,password,send,shou,zhu;
Checkbox check;
TextArea neirong;
Button button1,button2;
//定义Socket
Socket mycocket;
Twin(){
FlowLayout flow=new FlowLayout();
flow.setAlignment(FlowLayout.LEFT);
setLayout(flow);
label1=new Label("发送邮件服务器:");
label1.setBounds(0,0,20,20);
add(label1);
text1=new TextField("smtp.163.com");
text1.setPreferredSize(new Dimension(100,20));
add(text1);
check=new Checkbox();
add(check);
label2=new Label("是否需要认证");
add(label2);
name=new Label("用户名:");
add(name);
namet=new TextField();
namet.setPreferredSize(new Dimension(100,20));
add(namet);
password=new Label("密码:");
add(password);
passwordt=new TextField();
passwordt.setEchoChar('*');
passwordt.setPreferredSize(new Dimension(100,20));
add(passwordt);
send=new Label("发件人:");
add(send);
sendt=new TextField();
sendt.setPreferredSize(new Dimension(100,20));
add(sendt);
shou=new Label("收件人:");
add(shou);
shout=new TextField("[email protected]");
shout.setPreferredSize(new Dimension(100,20));
add(shout);
zhu=new Label("主题:");
add(zhu);
zhut=new TextField();
zhut.setPreferredSize(new Dimension(100,20));
add(zhut);
neirong=new TextArea();
neirong.setPreferredSize(new Dimension(300,100));
add(neirong);
button1=new Button("发送");
button1.addActionListener(this);
add(button1);
button2=new Button("退出");
add(button2);
setBounds(100,100,350,400);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==button1){
//`判断各个内容是否为空============================
if(text1.getText().length()==0 || namet.getText().length()==0 || passwordt.getText().length()==0 || sendt.getText().length()==0 || shout.getText().length()==0 || zhut.getText().length()==0 || neirong.getText().length()==0){
JOptionPane.showMessageDialog(this,"请检查各个输入框中的内容不为空!");
}else{
sendMail(text1.getText()," "," "," ",zhut.getText(),neirong.getText(),"");
}
}
}
//====================================================发信函数==
public void sendMail(String mailServer, String shou,String name,String password,String zhu,String nei,String send) {
try {
//有Socket打开25端口
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"));
//发出“HELO”命令,表示对服务器的问候
send(in, out, "HELO theWorld");
//告诉服务器我的邮件地址,有些服务器要校验这个地址
send(in, out, "MAIL FROM: <[email protected]>");
//使用“RCPT TO”命令告诉服务器解释邮件的邮件地址
send(in, out, "RCPT TO: " + shou);
//发送一个“DATA”表示下面将是邮件主体
send(in, out, "DATA");
//使用Subject命令标注邮件主题
send(in,out, "Subject:"+zhu);
//使用“From”标注邮件的来源
send(in,out, "From: riverwind <[email protected]>");
send (in,out, "\n");
//邮件主体
send(in,out, nei);
send(in,out, "\n.\n");
//发送“QUIT”端口邮件的通讯
send(in, out, "QUIT");
s.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
public void send(BufferedReader in, BufferedWriter out, String s) {
try {
out.write(s + "\n");
out.flush();
JOptionPane.showMessageDialog(this,s);
s = in.readLine();
JOptionPane.showMessageDialog(this,s);
}
catch (Exception e) {
e.printStackTrace();
}
} //==============================================================
}
public class email{
public static void main(String args[]){
Twin win1=new Twin();
}
}
以上是我自已结合网上内容做的,但是怎么都不成功,请大侠门帮我解决一下,还要搞个用户认证,不知道要怎么搞,急哦!!!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货