歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java實用工具--JavaMail

Java實用工具--JavaMail

日期:2017/3/1 9:32:48   编辑:Linux編程

在實現javamail之前首先要搭建郵件服務器。

James

在進行WEB程序開發的時候需要使用Tomcat服務器,但是Tomcat服務器並不支持郵件的處理操作,所以要想進行郵件的發送,還需要配置一個單獨的Java Mail服務器,James 就是一個企業級的郵件服務器,它完全實現了SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協議) 和POP3(Post Office Protocol 3,郵局協議的第三個版本)以及NNTP (Network News Transport Protocol,網絡新聞傳輸協議)協議。同時,James服務器又是一個郵件應用程序平台。它可以讓用戶常容易的實現出很強大的郵件應用程序。讀者可以使用Apache的James服務器,直接登陸http://james.apache.org/,下載James服務器。

在網上可以直接搜索配置James服務器,有大量的博文可以參考,我在這裡就不累贅重復了,有一點值得注意的是:

在配置過程中有打
telnet localhost 4555

沒有反應的需要在控制面板-->程序與功能-->打開或關閉windows功能中 打開Telnet服務即可

JavaMail簡介及配置

JavaMail是Java中專門用來處理電子郵件處理的一套規范,使用它可以方便的進行mail的發送、也可以使用JavaMail開發出類似於Microsoft Outlook樣的應用程序。

JavaMail核心類:
1.javax.mail.Session:表示整個郵件的會話,所有的類都要通過session才可以使用;
2.javax.mail.Message:Message類表示的是郵件傳遞的內容;
3.javax.mail.Address:當確定好Session和Message之後,就可以通過Address進行發送地址的指定;
4.javax.mail. Authenticator:使用此類可以通過用戶名和密碼保護資源;
5.javax.mail.Transport:在消息發送的最後一步使用此類,此類的功能是使用指定的語言發送消息;
6.javax.mail.Store:此類主要是進行信息的讀、寫等操作,也可以通過此類讀取文件夾中的郵件;
7.javax.mail.Folder:用於對郵件進行分級管理。

實例:發送普通郵件

發送郵件依靠之前配置過的James服務器和JavaMail(JAF)類完成,但是在進行郵件發送時,一定要注意的是,由於現在所有的郵箱用戶都保存在了James服務器上,所以一定要首先編寫一個可以用於服務器驗證用戶名和密碼的操作類,此類必須繼承javax.mail.Authenticator類,而且必須覆寫getPasswordAuthentication()方法。

<%@ page contentType="text/html; charset=GBK" language="java" %>
<html>
<head>
<title>發送普通文本格式的E-mail</title>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<link href="css/style.css" rel="stylesheet">
<script language="javascript">
function checkform(myform){
for(i=0;i<myform.length;i++){
if(myform.elements[i].value==""){
alert(myform.elements[i].title+"不能為空!");
myform.elements[i].focus();
return false;
}
}
}
</script>
</head>
<body>
<form name="form1" method="post" action="mydeal.jsp" onSubmit="return checkform(form1)">
<table width="588" height="360" border="0" align="center" cellpadding="0" cellspacing="0" background="images/bg.jpg">
<tr>
<td width="60" height="73" background="Images/board_left.gif">&nbsp;</td>
<td width="486" background="Images/board_left.gif">&nbsp;</td>
<td width="46" background="Images/board_left.gif">&nbsp;</td>
</tr>
<tr valign="top">
<td height="247">&nbsp;</td>
<td valign="top"><table width="96%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="16%" height="27" align="center">收件人:</td>
<td width="84%" colspan="2" align="left"><input name="to" type="text" id="to" title="收件人" size="60" ></td>
</tr>
<tr>
<td height="27" align="center">發件人:</td>
<td colspan="2" align="left"><input name="from" type="text" id="from" title="發件人" size="60"></td>
</tr>
<tr>
<td height="27" align="center">密&nbsp;&nbsp;碼:</td>
<td colspan="2" align="left"><input name="password" type="password" id="password" title="發件人信箱密碼" size="60"></td>
</tr>
<tr>
<td height="27" align="center">主&nbsp;&nbsp;題:</td>
<td colspan="2" align="left"><input name="subject" type="text" id="subject" title="郵件主題" size="60"></td>
</tr>
<tr>
<td height="93" align="center">內&nbsp;&nbsp;容:</td>
<td colspan="2" align="left"><textarea name="content" cols="59" rows="7" class="wenbenkuang" id="content" title="郵件內容"></textarea></td>
</tr>
<tr>
<td height="30" align="center">&nbsp;</td>
<td height="40" align="right"><input name="Submit" type="submit" class="btn_bg" value="發送">
&nbsp;
<input name="Submit2" type="reset" class="btn_bg" value="重置">
&nbsp;
<input name="Submit3" type="button" class="btn_bg" onClick="window.close();" value="關閉">
&nbsp;&nbsp;&nbsp;</td>
<td align="left">&nbsp;</td>
</tr>
</table></td>
<td>&nbsp;</td>
</tr>
<tr valign="top">
<td height="40">&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</form>
</body>
</html>

mydeal.jsp

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ page import="java.util.*" %>
<%@ page import ="javax.mail.*" %>
<%@ page import="javax.mail.internet.*" %>
<%@ page import="javax.activation.*" %>
<%@ page import="org.apache.commons.mail.*" %>
<%
try{
request.setCharacterEncoding("GBK");
String from=request.getParameter("from");
String to=request.getParameter("to");
String subject=request.getParameter("subject");
String messageText=request.getParameter("content");
String password=request.getParameter("password");
String mailserver="localhost"; //局域網發送郵件時的SMTP服務器
SimpleEmail email = new SimpleEmail();
email.setHostName(mailserver);//設置郵件服務器
email.setAuthentication(from,password);//設置郵箱用戶名和密碼
email.setFrom(from); //設置發件人地址
email.addTo(to); //設置收件人地址
email.setSubject(subject); //設置主題
email.setSentDate(new Date());//設置發送時間
email.setMsg(messageText); //設置發送的消息
email.send(); //發送郵件
out.println("<script language='javascript'>alert('郵件已發送!');window.location.href='index.jsp';</script>");
}catch(Exception e){
e.printStackTrace();
System.out.println("發送郵件產生的錯誤:"+e.getMessage());
out.println("<script language='javascript'>alert('郵件發送失敗!');window.location.href='index.jsp';</script>");
}
%>

需要導的包:mail.jar

Copyright © Linux教程網 All Rights Reserved