public class sendfile {    public static void main(String[] args) {
if (args.length != 5) {
    System.out.println("usage: java sendfile <to> <from> <smtp> <file> true|false");
    System.exit(1);
} String to = args[0];
String from = args[1];
String host = args[2];
String filename = args[3];
boolean debug = Boolean.valueOf(args[4]).booleanValue();
String msgText1 = "Sending a file.\n";
String subject = "Sending a file";

// create some properties and get the default Session
Properties props = System.getProperties();
props.put("mail.smtp.host", host);

Session session = Session.getInstance(props, null);
session.setDebug(debug);

try {
    // create a message
    MimeMessage msg = new MimeMessage(session);
    msg.setFrom(new InternetAddress(from));
    InternetAddress[] address = {new InternetAddress(to)};
    msg.setRecipients(Message.RecipientType.TO, address);
    msg.setSubject(subject);     // create and fill the first message part
    MimeBodyPart mbp1 = new MimeBodyPart();
    mbp1.setText(msgText1);     // create the second message part
    MimeBodyPart mbp2 = new MimeBodyPart();            // attach the file to the message
        FileDataSource fds = new FileDataSource(filename);
    mbp2.setDataHandler(new DataHandler(fds));
    mbp2.setFileName(fds.getName());     // create the Multipart and add its parts to it
    Multipart mp = new MimeMultipart();
    mp.addBodyPart(mbp1);
    mp.addBodyPart(mbp2);     // add the Multipart to the message
    msg.setContent(mp);     // set the Date: header
    msg.setSentDate(new Date());
    
    // send the message
    Transport.send(msg);
    
} catch (MessagingException mex) {
    mex.printStackTrace();
    Exception ex = null;
    if ((ex = mex.getNextException()) != null) {
ex.printStackTrace();
    }
}
    }
}