C'est insuffisant pour un usage courant mais je vous laisse le code pour que vous puissiez faire des miracles avec.
Voici a quoi ça ressemble
> />
import java.util.*;
import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class Gsmtp extends JFrame
{
class smtpClient extends Thread {
private String server, message, dest, origin;
private int port;
private Socket socket;
public smtpClient (String serv, int por, String org)
{
server = serv;
port = por;
origin = org;
}
public void createMsg(String dst, String msg)
{
message = msg;
dest = dst;
}
public void run()
{
PrintWriter to;
BufferedReader from;
String str;
try {
socket = new Socket(InetAddress.getByName(server),port);
to = new PrintWriter(
new BufferedWriter (
new OutputStreamWriter (
socket.getOutputStream())),true);
from = new BufferedReader(
new InputStreamReader (
socket.getInputStream()));
str = from.readLine();
to.println("helo plus.bas");
status.setText(from.readLine());
to.println("mail from: <"+origin+">");
status.setText(from.readLine());
to.println("rcpt to: <"+dest+">");
status.setText(from.readLine());
to.println("data");
status.setText(from.readLine());
to.println(message + "\r\n.\r\n");
status.setText(from.readLine());
status.setText("Ready ...");
socket.close();
} catch ( Exception e ) {}
}
}
public class SmtpServerDialog extends JDialog
{
JTextField hostTF, portTF;
public SmtpServerDialog(Frame parent, boolean modal)
{
super(parent, modal);
JPanel panel1, panel3;
JButton okButton, cancelButton;
Container contentPane = this.getContentPane();
panel1 = new JPanel();
panel1.setLayout(new FlowLayout(FlowLayout.CENTER));
contentPane.add(panel1, BorderLayout.SOUTH);
okButton = new JButton("OK");
panel1.add(okButton);
cancelButton = new JButton("Cancel");
panel1.add(cancelButton);
panel3 = new JPanel();
panel3.setLayout(new FlowLayout(FlowLayout.CENTER));
contentPane.add(panel3, BorderLayout.CENTER);
hostTF = new JTextField(smtpServer, 20);
portTF = new JTextField("" + port, 5);
panel3.add(hostTF);
panel3.add(portTF);
setTitle("Smtp Server info");
pack();
cancelButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event)
{
dispose();
setVisible(false);
}
});
okButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event)
{
smtpServer = hostTF.getText();
port = Integer.parseInt(portTF.getText());
dispose();
setVisible(false);
}
});
}
}
private String smtpServer = "fmsmsx18.intel.com";
private int port = 25;
private JLabel status = new JLabel("Ready...");
private JTextField AddrDest = new JTextField(10);
private JTextField AddrOrg = new JTextField(10);
private JTextArea Jbody = new JTextArea(10,30);
public Gsmtp ()
{
JMenuBar menuBar = new JMenuBar();
JButton closeButton = new JButton("Close");
JPanel statusbar = new JPanel();
JPanel Core = new JPanel();
JPanel Result = new JPanel();
JScrollPane SPbody;
Core.setLayout(new BorderLayout());
Result.setLayout(new BorderLayout());
Container contentPane = this.getContentPane();
contentPane.setLayout(new BorderLayout());
setJMenuBar(menuBar);
JMenu fMenu = new JMenu("File");
menuBar.add(fMenu);
JMenuItem smtpServerItem = new JMenuItem("Set Smtp Server", 2);
fMenu.add(smtpServerItem);
fMenu.addSeparator();
JMenuItem exitItem = new JMenuItem("Exit", 2);
fMenu.add(exitItem);
statusbar.setLayout(new FlowLayout(FlowLayout.LEFT,5,5));
statusbar.setBorder(new BevelBorder(BevelBorder.LOWERED));
contentPane.add(statusbar,BorderLayout.SOUTH );
statusbar.add(status);
JPanel url = new JPanel(new FlowLayout());
JButton getButton = new JButton("Send");
url.add( new JLabel("To :") ); url.add( AddrDest );
url.add( new JLabel("From :") ); url.add( AddrOrg );
url.add(getButton);
Core.add(url, BorderLayout.NORTH);
SPbody = new JScrollPane(Jbody,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
Result.add(new JSeparator());
Result.add(SPbody, BorderLayout.SOUTH);
Core.add(Result, BorderLayout.SOUTH);
contentPane.add(Core);
// add listeners for the window and the various buttons
this.addWindowListener( new WindowAdapter(){
public void windowClosing(WindowEvent e){
setVisible(false);
dispose();
System.exit(0);
}});
exitItem.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}});
getButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
send();
}});
smtpServerItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
changeSmtpServer();
}});
pack();
}
protected void changeSmtpServer()
{
new SmtpServerDialog(this, true).show();
}
private void send()
{
smtpClient sc = new smtpClient(smtpServer, port, AddrOrg.getText());
sc.createMsg(AddrDest.getText(), Jbody.getText());
sc.run();
}
public static void main ( String args[] )
{
(new Gsmtp()).setVisible(true);
}
}