這里先介紹用Java Mail 類實(shí)現(xiàn)發(fā)送郵件,然后再介紹Commons Email組件實(shí)現(xiàn)發(fā)送簡(jiǎn)單郵件和帶附件的郵件
首先到官網(wǎng)上下載 Java Mail 1.4.1http://java.sun.com/products/javamail/index.html
添加mail.jar到用戶庫(kù)中, 然后構(gòu)建郵件并發(fā)送












Commons Email組件很好的封裝了Java Mail 類,用起來(lái)更加方便,功能更強(qiáng)大
下載該組件,把commons-email-1.1.jar 加載到該應(yīng)用中
用Servlet處理發(fā)郵件,在doPost()方法中添加如下代碼:
request.setCharacterEnconding("UTF-8");
SimpleEmail email=new SimpleEmail();
email.setHostName("smtp.sina.com");
email.setAuthentication("username","password");
//這里設(shè)定一下郵件內(nèi)容編碼格式
email.setCharset("UTF-8");
//request.getParameter()從提交的表單中獲取信息
email.setFrom(request.getParameter("from"));
email.addTo(request.getParameter("to"));
email.setSubjet(request.getPatameter("subject"));
email.setMsg(request.getParameter("content"));
email.send();
SimpleEmail email=new SimpleEmail();
email.setHostName("smtp.sina.com");
email.setAuthentication("username","password");
//這里設(shè)定一下郵件內(nèi)容編碼格式
email.setCharset("UTF-8");
//request.getParameter()從提交的表單中獲取信息
email.setFrom(request.getParameter("from"));
email.addTo(request.getParameter("to"));
email.setSubjet(request.getPatameter("subject"));
email.setMsg(request.getParameter("content"));
email.send();
下面介紹帶附件的郵件如何編寫(xiě),實(shí)際上就是把上述兩部分結(jié)合。
首先,表單里要有"file"域,在表單標(biāo)簽里添加 <Form enctype="multipart/form-data">
寫(xiě)一個(gè)方法getFile(),返回file類型,具體的內(nèi)容請(qǐng)參加File Upload 那篇文章,先把文件存在web server的一個(gè)目錄上,然后再發(fā)送
所不同的是,這次,構(gòu)建一個(gè)MultiPartEmail email=new MultiPartEmail();
然后按上述代碼添加好主題,內(nèi)容等,需要注意的是,在getFile()中獲取文件的時(shí)候,已經(jīng)獲取了表單域的信息,把這些信息存在一個(gè)HashMap中,然后通過(guò)email對(duì)象的方法添加這些信息時(shí),直接從HashMap中獲得即可
通過(guò)getFile()獲得文件,然后
if(file!=null)
{
EmailAttachment att=new EmailAttachment();
att.setPath(file.getPath());
att.setDisposition(EmailAttachment.ATTACHMENT);//這里是附件的類型
att.setName(file.getName());
email.addattach(att);
}
{
EmailAttachment att=new EmailAttachment();
att.setPath(file.getPath());
att.setDisposition(EmailAttachment.ATTACHMENT);//這里是附件的類型
att.setName(file.getName());
email.addattach(att);
}