transportpublic class transport extends Object implements TransportListener, ConnectionListenertransport is a simple program that creates a message, explicitly
retrieves a Transport from the session based on the type of the
address (it's InternetAddress, so SMTP will be used) and sends
the message.
usage: java transport "toaddr1[, toaddr2]*" from smtphost
true|false
where to and from are the destination and
origin email addresses, respectively, and smtphost
is the hostname of the machine that has the smtp server
running. The to addresses can be either a single email
address or a comma-separated list of email addresses in
quotes, i.e. "joe@machine, jane, max@server.com"
The last parameter either turns on or turns off
debugging during sending. |
Fields Summary |
---|
static String | msgText | static String | msgText2 |
Constructors Summary |
---|
public transport()
|
Methods Summary |
---|
public void | closed(javax.mail.event.ConnectionEvent e)
System.out.println(">>> ConnectionListener.closed()");
| public void | disconnected(javax.mail.event.ConnectionEvent e)
| public void | go(javax.mail.Session session, javax.mail.internet.InternetAddress[] toAddr, javax.mail.internet.InternetAddress from)
Transport trans = null;
try {
// create a message
Message msg = new MimeMessage(session);
msg.setFrom(from);
msg.setRecipients(Message.RecipientType.TO, toAddr);
msg.setSubject("JavaMail APIs transport.java Test");
msg.setSentDate(new Date()); // Date: header
msg.setContent(msgText+msgText2, "text/plain");
msg.saveChanges();
// get the smtp transport for the address
trans = session.getTransport(toAddr[0]);
// register ourselves as listener for ConnectionEvents
// and TransportEvents
trans.addConnectionListener(this);
trans.addTransportListener(this);
// connect the transport
trans.connect();
// send the message
trans.sendMessage(msg, toAddr);
// give the EventQueue enough time to fire its events
try {Thread.sleep(5);}catch(InterruptedException e) {}
} catch (MessagingException mex) {
// give the EventQueue enough time to fire its events
try {Thread.sleep(5);}catch(InterruptedException e) {}
mex.printStackTrace();
System.out.println();
Exception ex = mex;
do {
if (ex instanceof SendFailedException) {
SendFailedException sfex = (SendFailedException)ex;
Address[] invalid = sfex.getInvalidAddresses();
if (invalid != null) {
System.out.println(" ** Invalid Addresses");
if (invalid != null) {
for (int i = 0; i < invalid.length; i++)
System.out.println(" " + invalid[i]);
}
}
Address[] validUnsent = sfex.getValidUnsentAddresses();
if (validUnsent != null) {
System.out.println(" ** ValidUnsent Addresses");
if (validUnsent != null) {
for (int i = 0; i < validUnsent.length; i++)
System.out.println(" "+validUnsent[i]);
}
}
Address[] validSent = sfex.getValidSentAddresses();
if (validSent != null) {
System.out.println(" ** ValidSent Addresses");
if (validSent != null) {
for (int i = 0; i < validSent.length; i++)
System.out.println(" "+validSent[i]);
}
}
}
System.out.println();
if (ex instanceof MessagingException)
ex = ((MessagingException)ex).getNextException();
else
ex = null;
} while (ex != null);
} finally {
try {
// close the transport
if (trans != null)
trans.close();
} catch (MessagingException mex) { /* ignore */ }
}
| public static void | main(java.lang.String[] args)
Properties props = new Properties();
// parse the arguments
InternetAddress[] addrs = null;
InternetAddress from;
boolean debug = false;
if (args.length != 4) {
usage();
return;
} else {
props.put("mail.smtp.host", args[2]);
if (args[3].equals("true")) {
debug = true;
} else if (args[3].equals("false")) {
debug = false;
} else {
usage();
return;
}
// parse the destination addresses
try {
addrs = InternetAddress.parse(args[0], false);
from = new InternetAddress(args[1]);
} catch (AddressException aex) {
System.out.println("Invalid Address");
aex.printStackTrace();
return;
}
}
// create some properties and get a Session
Session session = Session.getInstance(props, null);
session.setDebug(debug);
transport t = new transport();
t.go(session, addrs, from);
| public void | messageDelivered(javax.mail.event.TransportEvent e)
System.out.print(">>> TransportListener.messageDelivered().");
System.out.println(" Valid Addresses:");
Address[] valid = e.getValidSentAddresses();
if (valid != null) {
for (int i = 0; i < valid.length; i++)
System.out.println(" " + valid[i]);
}
| public void | messageNotDelivered(javax.mail.event.TransportEvent e)
System.out.print(">>> TransportListener.messageNotDelivered().");
System.out.println(" Invalid Addresses:");
Address[] invalid = e.getInvalidAddresses();
if (invalid != null) {
for (int i = 0; i < invalid.length; i++)
System.out.println(" " + invalid[i]);
}
| public void | messagePartiallyDelivered(javax.mail.event.TransportEvent e)
// SMTPTransport doesn't partially deliver msgs
| public void | opened(javax.mail.event.ConnectionEvent e)
System.out.println(">>> ConnectionListener.opened()");
| private static void | usage()
System.out.println("usage: java transport \"<to1>[, <to2>]*\" <from> <smtp> true|false\nexample: java transport \"joe@machine, jane\" senderaddr smtphost false");
|
|