五、使用JavaMail API 在明确了JavaMail API的核心部分如何工作后,本人将带领大家学习一些使用Java Mail API任务案例。 1.发送邮件 在获得了Session后,建立并填入邮件信息,然后发送它到邮件服务器。这便是使用Java Mail API发送邮件的过程,在发送邮件之前,我们需要设置SMTP服务器:通过设置Properties的mail.smtp.host属性。 String host = ....String from = ....String to = ....// Get system propertiesProperties props = System.getProperties().// Setup mail serverprops.put("mail.smtp.host", host).// Get sessionSession session = Session.getDefaultInstance(props, null).// Define messageMimeMessage message = new MimeMessage(session).message.setFrom(new InternetAddress(from)).message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)).message.setSubject("Hello JavaMail").message.setText("Welcome to JavaMail").// Send messageTransport.send(message). 由于建立邮件信息和发送邮件的过程中可能会抛出异常,所以我们需要将上面的代码放入到try-catch结构块中。
2.接收邮件 为了在读取邮件,我们获得了session,并且连接到了邮箱的相应store,打开相应的Folder,然后得到我们想要的邮件,当然别忘记了在结束时关闭连接。 String host = ....String username = ....String password = ....// Create empty propertiesProperties props = new Properties().// Get sessionSession session = Session.getDefaultInstance(props, null).// Get the storeStore store = session.getStore("pop3").store.connect(host, username, password).// Get folderFolder folder = store.getFolder("INBOX").folder.open(Folder.READ_ONLY).// Get directoryMessage message[] = folder.getMessages().for (int i=0, n=message.length. i上面的代码所作的是从邮箱中读取每个邮件,并且显示邮件的发信人地址和主题。从技术角度讲,这里存在着一个异常的可能:当发信人地址为空时,getFrom()[0]将抛出异常。
下面的代码片断有效的说明了如何读取邮件内容,在显示每个邮件发信人和主题后,将出现用户提示从而得到用户是否读取该邮件的确认,如果输入YES的话,我们可用Message.writeTo(java.io.OutputStream os)方法将邮件内容输出到控制台上,关于Message.writeTo()的具体用法请看JavaMail API。 BufferedReader reader = new BufferedReader ( new InputStreamReader(System.in)).// Get directoryMessage message[] = folder.getMessages().for (int i=0, n=message.length. i