利用jakarta Commons組件收發郵件
發郵件:Telnet to port 25 of a SMTP server, and you will see the server respond with a numeric code (220). SMTPReply.isPositiveCompletion( ) returns true if the response code of the previously executed command is between 200 and 299; the value of the initial response code, 220, is equal to the public static variable SMTPReply.SERVICE_READY. The following example uses getReplyCode( ) and SMTPReply.isPositiveCompletion() to test the connection to the SMTP server:
import org.apache.commons.net.smtp.SMTP; import org.apache.commons.net.smtp.SMTPClient; import org.apache.commons.net.smtp.SMTPReply; SMTPClient client = new SMTPClient( ); client.connect("www.discursive.com"); int response = client.getReplyCode( ); if( SMTPReply.isPositiveCompletion( response ) ) { // Set the sender and the recipients client.setSender( "tobrien@discursive.com" ); client.addRecipient( "president@whitehouse.gov" ); client.addRecipient( "vicepresident@whitehouse.gov" ); // Supply the message via a Writer Writer message = client.sendMessageData( ); message.write( "Spend more money on energy research. Thanks." ); message.close( ); // Send the message and print a confirmation boolean success = client.completePendingCommand( ); if( success ) { System.out.println( "Message sent" ); } } else { System.out.println( "Error communicating with SMTP server" ); } client.disconnect( );
Instead of sendSimpleMessage( ), the previous example sets a sender address and two recipient addresses using setSender( ) and addRecipient(). The message body is then written to a Writer returned by sendMessageData(). When the Writer is closed, the message is sent by calling completePendingCommand(). completePendingCommand( ) returns true if the message has been queued for delivery.
收郵件:Use Commons Net POP3Client to check a POP3 mailbox for incoming mail. The following example connects to the POP3 server www.discursive.com, logs in as tobrien@discursive.com, and prints each message in the mailbox:
import org.apache.commons.io.CopyUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.net.pop3.POP3Client; import org.apache.commons.net.pop3.POP3MessageInfo; POP3Client client = new POP3Client( ); client.connect("www.discursive.com"); client.login("tobrien@discursive.com", "secretpassword"); POP3MessageInfo[] messages = client.listMessages( ); for (int i = 0; i < messages.length; i++) { int messageNum = messages[i].number; System.out.println( "************* Message number: " + messageNum ); Reader reader = client.retrieveMessage( messageNum ); System.out.println( "Message:\n" + IOUtils.toString( reader ) ); IOUtils.closeQuietly( reader ); } client.logout( ); client.disconnect( );
posted on 2007-11-23 10:13 劉錚 閱讀(762) 評論(0) 編輯 收藏 所屬分類: JAVA General