JSP筆記-傳送郵件
導讀 | JSP(全稱JavaServer Pages)是由Sun Microsystems公司主導建立的一種動態網頁技術標準。JSP部署於網路伺服器上,可以響應客戶端傳送的請求,並根據請求內容動態地生成HTML、XML或其他格式文件的Web網頁,然後返回給請求者。JSP技術以Java語言作為 語言,為使用者的HTTP請求提供服務,並能與伺服器上的其它Java程式共同處理複雜的業務需求。 |
這個例子展示瞭如何從您的機器傳送一封簡單的郵件。它假定localhost已經連線至網路並且有能力傳送一封郵件。與此同時,請再一次確認mail.jar包和activation.jar包已經新增進CLASSPATH變數中。
<%@ page import="java.io.*,java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <% String result; // 收件人的電子郵件 String to = "abcd@gmail.com"; // 發件人的電子郵件 String from = "mcmohd@gmail.com"; // 假設你是從本地主機傳送電子郵件 String host = "localhost"; // 獲取系統屬性物件 Properties properties = System.getProperties(); // 設定郵件伺服器 properties.setProperty("mail.smtp.host", host); // 獲取預設的Session物件。 Session mailSession = Session.getDefaultInstance(properties); try{ // 建立一個預設的MimeMessage物件。 MimeMessage message = new MimeMessage(mailSession); // 設定 From: 頭部的header欄位 message.setFrom(new InternetAddress(from)); // 設定 To: 頭部的header欄位 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 設定 Subject: header欄位 message.setSubject("This is the Subject Line!"); // 現在設定的實際訊息 message.setText("This is actual message"); // 傳送訊息 Transport.send(message); result = "Sent message successfully...."; }catch (MessagingException mex) { mex.printStackTrace(); result = "Error: unable to send message...."; } %> <html> <head> <title>Send Email using JSP</title> </head> <body> <center> <h1>Send Email using JSP</h1> </center> <p align="center"> <% out.println("Result: " + result + "\n"); %> </p> </body> </html>
現在訪問,它將會傳送一封郵件給abcd@gmail.com 並顯示如下結果:
Send Email using JSP Result: Sent message successfully....
如果想要把郵件傳送給多人,下面列出的方法可以用來指明多個郵箱地址:
void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
引數的描述如下:
1.type:這個值將會被設定成 TO(收件人)、CC 或 BCC。CC 表示 Carbon Copy(抄送),BCC 表示 Blind Carbon Copy(密件抄送)。例子程式中使用的是 TO。
2.addresses:這是一個郵箱地址的陣列,當指定郵箱地址時需要使用InternetAddress()方法。
這個例子傳送一封簡單的HTML郵件。它假定您的localhost已經連線至網路並且有能力傳送郵件。與此同時,請再一次確認mail.jar包和activation.jar包已經新增進CLASSPATH變數中。
這個例子和前一個例子非常相似,不過在這個例子中我們使用了setContent()方法,將"text/html"做為第二個引數傳給它,用來表明訊息中包含了HTML內容。
<%@ page import="java.io.*,java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <% String result; // 收件人的電子郵件 String to = "abcd@gmail.com"; // 發件人的電子郵件 String from = "mcmohd@gmail.com"; // 假設你是從本地主機傳送電子郵件 String host = "localhost"; // 獲取系統屬性物件 Properties properties = System.getProperties(); // 設定郵件伺服器 properties.setProperty("mail.smtp.host", host); // 獲取預設的Session物件。 Session mailSession = Session.getDefaultInstance(properties); try{ // 建立一個預設的MimeMessage物件。 MimeMessage message = new MimeMessage(mailSession); // 設定 From: 頭部的header欄位 message.setFrom(new InternetAddress(from)); // 設定 To: 頭部的header欄位 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 設定 Subject: header欄位 message.setSubject("This is the Subject Line!"); // 設定 HTML訊息 message.setContent("<h1>This is actual message</h1>", "text/html" ); // 傳送訊息 Transport.send(message); result = "Sent message successfully...."; }catch (MessagingException mex) { mex.printStackTrace(); result = "Error: unable to send message...."; } %> <html> <head> <title>Send HTML Email using JSP</title> </head> <body> <center> <h1>Send Email using JSP</h1> </center> <p align="center"> <% out.println("Result: " + result + "\n"); %> </p> </body> </html>
現在你可以嘗試使用以上JSP檔案來傳送HTML訊息的電子郵件。
這個例子告訴我們如何傳送一封包含附件的郵件。
<%@ page import="java.io.*,java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <% String result; // 收件人的電子郵件 String to = "abcd@gmail.com"; // 發件人的電子郵件 String from = "mcmohd@gmail.com"; // 假設你是從本地主機傳送電子郵件 String host = "localhost"; // 獲取系統屬性物件 Properties properties = System.getProperties(); // 設定郵件伺服器 properties.setProperty("mail.smtp.host", host); // 獲取預設的Session物件。 Session mailSession = Session.getDefaultInstance(properties); try{ // 建立一個預設的MimeMessage物件。 MimeMessage message = new MimeMessage(mailSession); // 設定 From: 頭部的header欄位 message.setFrom(new InternetAddress(from)); // 設定 To: 頭部的header欄位 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 設定 Subject: header欄位 message.setSubject("This is the Subject Line!"); // 建立訊息部分 BodyPart messageBodyPart = new MimeBodyPart(); // 填充訊息 messageBodyPart.setText("This is message body"); // 建立多媒體訊息 Multipart multipart = new MimeMultipart(); // 設定文字訊息部分 multipart.addBodyPart(messageBodyPart); // 附件部分 messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // 傳送完整訊息 message.setContent(multipart ); // 傳送訊息 Transport.send(message); String title = "Send Email"; result = "Sent message successfully...."; }catch (MessagingException mex) { mex.printStackTrace(); result = "Error: unable to send message...."; } %> <html> <head> <title>Send Attachement Email using JSP</title> </head> <body> <center> <h1>Send Attachement Email using JSP</h1> </center> <p align="center"> <% out.println("Result: " + result + "\n"); %> </p> </body> </html>
如果郵件伺服器需要使用者名稱和密碼來進行使用者認證的話,可以像下面這樣來設定:
properties.setProperty("mail.user", "myuser"); properties.setProperty("mail.password", "mypwd");
使用HTML表單接收一封郵件,並透過request物件獲取所有郵件資訊:
String to = request.getParameter("to"); String from = request.getParameter("from"); String subject = request.getParameter("subject"); String messageText = request.getParameter("body");
獲取以上資訊後,您就可以使用前面提到的例子來傳送郵件了。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2785750/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Django筆記三十八之傳送郵件Django筆記
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- 郵件傳送
- 傳送郵件
- java郵件傳送Java
- python傳送郵件Python
- Django——郵件傳送Django
- gmail傳送郵件AI
- phpcms傳送郵件PHP
- 郵件的傳送
- Laravel 傳送郵件Laravel
- thinkjs 傳送郵件JS
- SpringBoot傳送郵件Spring Boot
- SpringBoot郵件傳送Spring Boot
- Laravel傳送郵件Laravel
- PHP傳送郵件PHP
- nodejs 傳送郵件NodeJS
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- golang傳送郵件(qq郵箱)Golang
- Android 快速傳送郵件Android
- 使用phpmailer傳送郵件PHPAI
- SpringBoot傳送郵件(二)Spring Boot
- SpringBoot傳送郵件(三)Spring Boot
- 定時傳送郵件
- 使用 smtplib 傳送郵件
- Python SMTP傳送郵件Python
- 郵件傳送API整理API
- php windows 傳送郵件PHPWindows
- SpringBoot整合郵件傳送Spring Boot
- Ubuntu的郵件傳送Ubuntu
- 如何傳送電子郵件到別人郵箱?電子郵件傳送的方法
- node 定時傳送郵件
- Laravel 佇列傳送郵件Laravel佇列
- Spring Boot整合郵件傳送Spring Boot
- python實現傳送郵件Python
- Springboot 自動傳送郵件Spring Boot
- Laravel 傳送郵件報錯Laravel
- Jenkins 如何成功傳送郵件?Jenkins