English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Obwohl das Senden von E-Mails mit JSP einfach ist, ist die JavaMail API erforderlich und es muss das JavaBean Activation Framework installiert werden.
Sie können die neueste Version von Java von der Java-Website herunterladen JavaMailÖffnen Sie die rechte Seite der Webseite, dort gibt es einen Downloads Klick auf den Link, um die Datei herunterzuladen.
Sie können die neueste Version von Java von der Java-Website herunterladen JAF (Version 1.1.1).
Laden Sie diese Dateien herunter und entpacken Sie sie. Im Stammverzeichnis sehen Sie eine Reihe von jar-Paketen. Fügen Sie die Pakete mail.jar und activation.jar der CLASSPATH-Variablen hinzu.
Dieser Beispielcode zeigt, wie man von Ihrem Computer eine einfache E-Mail sendet. Es wird davon ausgegangen, dass localhost bereits mit dem Netzwerk verbunden ist und die Fähigkeit hat, eine E-Mail zu senden. Gleichzeitig bitte noch einmal überprüfen, ob die mail.jar und activation.jar-Pakete in die CLASSPATH-Variablen hinzugefügt wurden.
<%@ page import="java.io."*,java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet."*,javax.activation.*"%> <%@ page import="javax.servlet.http."*,javax.servlet.*" %> <% String result; // Empfänger-E-Mail String to = "[email protected]"; // Absender-E-Mail String from = "[email protected]"; // Angenommen, Sie senden E-Mails von einem lokalen Host String host = "localhost"; // Erhalten Sie das Systemeigenschaftsobjekt Properties properties = System.getProperties(); // Stellen Sie den E-Mail-Server ein properties.setProperty("mail.smtp.host", host); // Erhalten Sie das Standard-Session-Objekt. Session mailSession = Session.getDefaultInstance(properties); try{ // Erstellen Sie ein Standard-MimeMessage-Objekt. MimeMessage message = new MimeMessage(mailSession); // Set From: header field message.setFrom(new InternetAddress(from)); // Set To: header field message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Set Subject: header field message.setSubject("This is the Subject Line!"); // Jetzt gesetzte tatsächliche Nachricht message.setText("Dies ist die tatsächliche Nachricht"); // Send message Transport.send(message); result = "Sent message successfully...."; }catch (MessagingException mex) { mex.printStackTrace(); result = "Error: unable to send message...."; } %> <html> <head> <title>E-Mail mit JSP senden</<title> </<head> <body> <center> <h1>Senden Sie E-Mail über JSP</h1> </center> <p align="center"> <% out.println("Ergebnis: " + result + "\n"); %> </p> </body> </html>
Besuchen Sie jetzt http://localhost:8080/SendEmail.jsp wird eine E-Mail an [email protected] senden und das folgende Ergebnis anzeigen:
E-Mail mit JSP senden Ergebnis: E-Mail erfolgreich gesendet....
Wenn Sie E-Mails an mehrere Personen senden möchten, können die folgenden Methoden verwendet werden, um mehrere E-Mail-Adressen anzugeben:
void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
Beschreibung der Parameter:
type: Dieser Wert wird auf TO (Empfänger), CC oder BCC gesetzt. CC bedeutet Carbon Copy (Kopie), BCC bedeutet Blind Carbon Copy (vertrauliche Kopie). Im Beispielprogramm wird TO verwendet.
addresses: Dies ist ein Array von E-Mail-Adressen, bei der Angabe von E-Mail-Adressen muss die Methode InternetAddress() verwendet werden.
Dieser Beispielcode sendet eine einfache HTML-E-Mail. Es wird davon ausgegangen, dass Ihr localhost bereits mit dem Netzwerk verbunden ist und die Fähigkeit hat, E-Mails zu senden. Gleichzeitig bitte noch einmal überprüfen, ob die mail.jar und activation.jar-Pakete in die CLASSPATH-Variablen hinzugefügt wurden.
Dieser Beispielcode ist sehr ähnlich wie der vorherige, aber in diesem Fall verwenden wir die setContent() Methode, um "text"/html" als zweiten Parameter an es übergeben, um anzuzeigen, dass die Nachricht HTML-Inhalte enthält.
<%@ page import="java.io."*,java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet."*,javax.activation.*"%> <%@ page import="javax.servlet.http."*,javax.servlet.*" %> <% String result; // Empfänger-E-Mail String to = "[email protected]"; // Absender-E-Mail String from = "[email protected]"; // Angenommen, Sie senden E-Mails von einem lokalen Host String host = "localhost"; // Erhalten Sie das Systemeigenschaftsobjekt Properties properties = System.getProperties(); // Stellen Sie den E-Mail-Server ein properties.setProperty("mail.smtp.host", host); // Erhalten Sie das Standard-Session-Objekt. Session mailSession = Session.getDefaultInstance(properties); try{ // Erstellen Sie ein Standard-MimeMessage-Objekt. MimeMessage message = new MimeMessage(mailSession); // Set From: header field message.setFrom(new InternetAddress(from)); // Set To: header field message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Set Subject: header field message.setSubject("This is the Subject Line!"); // Setzen Sie die HTML-Nachricht message.setContent("<h1>Dies ist die tatsächliche Nachricht</h1>", "text/html" ); // Send message Transport.send(message); result = "Sent message successfully...."; }catch (MessagingException mex) { mex.printStackTrace(); result = "Error: unable to send message...."; } %> <html> <head> <title>Senden Sie HTML-E-Mail über JSP</<title> </<head> <body> <center> <h1>Senden Sie E-Mail über JSP</h1> </center> <p align="center"> <% out.println("Ergebnis: " + result + "\n"); %> </p> </body> </html>
Jetzt können Sie versuchen, die obige JSP-Datei zu verwenden, um eine E-Mail mit HTML-Nachricht zu senden.
Dieser Beispielcode zeigt uns, wie man eine E-Mail mit Anhängen sendet.
<%@ page import="java.io."*,java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet."*,javax.activation.*"%> <%@ page import="javax.servlet.http."*,javax.servlet.*" %> <% String result; // Empfänger-E-Mail String to = "[email protected]"; // Absender-E-Mail String from = "[email protected]"; // Angenommen, Sie senden E-Mails von einem lokalen Host String host = "localhost"; // Erhalten Sie das Systemeigenschaftsobjekt Properties properties = System.getProperties(); // Stellen Sie den E-Mail-Server ein properties.setProperty("mail.smtp.host", host); // Erhalten Sie das Standard-Session-Objekt. Session mailSession = Session.getDefaultInstance(properties); try{ // Erstellen Sie ein Standard-MimeMessage-Objekt. MimeMessage message = new MimeMessage(mailSession); // Set From: header field message.setFrom(new InternetAddress(from)); // Set To: header field message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Set Subject: header field message.setSubject("This is the Subject Line!"); // Create message part BodyPart messageBodyPart = new MimeBodyPart(); // Fill message messageBodyPart.setText("This is message body"); // Create multimedia message Multipart multipart = new MimeMultipart(); // Set text message part multipart.addBodyPart(messageBodyPart); // Attachment part messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // Send complete message message.setContent(multipart); // Send message 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 Attachment Email using JSP</<title> </<head> <body> <center> <h1>Send Attachement Email using JSP</h1> </center> <p align="center"> <% out.println("Ergebnis: " + result + "\n"); %> </p> </body> </html>
Wenn der E-Mail-Server Benutzername und Passwort für die Benutzerauthentifizierung benötigt, können Sie wie folgt einstellen:
properties.setProperty("mail.user", "myuser"); properties.setProperty("mail.password", "mypwd");
Empfangen Sie eine E-Mail über ein HTML-Formular und erhalten Sie alle E-Mail-Informationen über das request-Objekt:
String to = request.getParameter("to"); String from = request.getParameter("from"); String subject = request.getParameter("subject"); String messageText = request.getParameter("body");
Nachdem Sie diese Informationen erhalten haben, können Sie die zuvor erwähnten Beispiele verwenden, um E-Mails zu senden.