Servlets E-Mail
Senden Sie eine E-Mail an den Servlet mit sehr einfach ist, aber zuerst müssen SieJava Mail API und das Java Activation Framework)auf Ihrem ComputerJAF) installieren.
- Sie können die neueste Version von Java herunterladen der Java Mail , öffnen Sie die rechte Seite der Seite gibt es einen Link Downloads, klicken Sie auf, um sie herunterzuladen.
- Sie können die neueste Version von Java herunterladen (Version 1.1.1) JAF .
Sie können auch die Website nutzen Download-Link zur Verfügung zu stellen:
Downloaden und entpacken Sie die Dateien in der neu Top-Level-Verzeichnis erstellt, werden Sie einige JAR-Datei zwei Anwendungen. Sie müssenmail.jar und activation.jarDateien auf Ihren CLASSPATH hinzuzufügen.
Senden Sie eine einfache E-Mail
Die folgenden Beispiele senden eine einfache E-Mail von Ihrem Computer. Dies setzt voraus , Ihremlokalen Host auf das Internet und E-Mail - Support verbunden ist.Während sichergestellt wird, dass Java E-Mail-API-Pakete und JAF Paket alle JAR-Dateien in der CLASSPATH zur Verfügung stehen.
// Dateiname SendEmail.java import java.io. *; import java.util * .; Import javax.servlet * .; Import javax.servlet.http * .; Import javax.mail * .; Import javax.mail.internet * .; Import javax.activation * .; public class Sendemail erweitert HttpServlet { public void doGet (HttpServletRequest Anfrage, HttpServletResponse Antwort) wirft ServletException, IOException { // Des Empfängers E-Mail-ID String = "[email protected]"; // Absender E-Mail-ID String aus = "[email protected]"; // Angenommen, Sie E-Mail-String host = "localhost" aus dem lokalen Host zu senden; // Systemeigenschaften Eigenschaften Properties = System.getProperties Get (); // Stellen Sie einen Mail-Server properties.setProperty ( "mail.smtp.host", Host) nach oben; // Holen Sie sich die Standard-Session-Objekt Session session = Session.getDefaultInstance (Eigenschaften); // Den Antwortinhalt Typ response.setContentType ( "text / html; charset = UTF-8"); Printwriter out = response.getWriter (); try { // Eine Standardmimemessage Objekte Mimemessage message = neue Mimemessage (Session); // Stellen Sie die From: Header-Feld des Headers. message.setFrom (neue Internetadresse (von)); // Set To: Header-Feld des Headers. message.addRecipient (Message.RecipientType.TO, neue Internetadresse (to)); // Stellen Sie den Betreff: Header-Feld message.setSubject ( "Dies ist der Betreff-Zeile!"); // Jetzt die eigentliche Nachricht message.setText ( "Dies ist tatsächlich Meldung") festgelegt; // Senden Sie die Nachricht Transport.send (Nachricht); String title = "E-Mail"; String res = "erfolgreich gesendeten Nachrichten ..."; String docType = "\ n <DOCTYPE html!>"; out.println (docType + "<Html> \ n" + "<Head> <title>" + Titel + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" center \ ">" + Titel + "</ h1> \ n" + "<P align = \" center \ ">" + res + "</ p> \ n" + "</ Body> </ html>"); } Catch (MessagingException mex) { mex.printStackTrace (); } } }
Nun wollen wir die oben Servlet kompilieren, und erstellen Sie den folgenden Eintrag in der Datei web.xml:
.... <Servlets> <Servlet-name> Sendemail </ Servlet-name> <Servlet-Klasse> Sendemail </ Servlet-Klasse> </ Servlet> <Servlet-mapping> <Servlet-name> Sendemail </ Servlet-name> <URL-Muster> / Sendemail </ url-pattern> </ Servlet-mapping> ....
Nun, indem Sie die URL http Besuch: // localhost: 8080 / Sendemail Servlets zu nennen. Dies wird eine E - Mail an die angegebene E - MailID[email protected] und erscheint senden , wie in der folgenden Reaktion gezeigt:
E-Mail sendenErfolgreich eine Nachricht geschickt ... |
Wenn Sie eine E-Mail an mehrere Empfänger senden möchten, verwenden Sie die folgenden Methoden mehrere E-Mail-ID angeben:
Leere addRecipients (Message.RecipientType Typ, Adresse [] Adressen) wirft MessagingException
Nachfolgend finden Sie eine Beschreibung der Parameter:
- Typ: Dies wird als TO, CC oder BCC eingestellt werden.Hier CC im Auftrag von CC, BCC BCC Vertreter. Zum BeispielMessage.RecipientType.TO.
- Adressen: Dies ist eine Reihe von E-Mail - ID.Wenn E-Mail-ID angibt, müssen Sie Internetadresse () Methode zu verwenden.
Senden Sie eine HTML-E-Mail
Im folgenden Beispiel wird eine HTML-formatierte E-Mail auf Ihrem Computer senden. Dies setzt voraus , Ihremlokalen Host auf das Internet und E-Mail - Support verbunden ist.Während sichergestellt wird, dass Java E-Mail-API-Pakete und JAF Paket alle JAR-Dateien in der CLASSPATH zur Verfügung stehen.
Dieses Beispiel ist sehr ähnlich zu den vorherigen Beispielen, aber hier verwenden wir setContent () -Methode den zweiten Parameter festgelegt ist "text / html" Inhalt dieser Parameter verwendet wird, um die HTML-Inhalte in der Nachricht enthaltenen angeben.
Mit diesem Beispiel können Sie die Inhalte senden nicht auf die Größe des HTML-Inhalte beschränkt ist.
// Dateiname SendEmail.java import java.io. *; import java.util * .; Import javax.servlet * .; Import javax.servlet.http * .; Import javax.mail * .; Import javax.mail.internet * .; Import javax.activation * .; public class Sendemail erweitert HttpServlet { public void doGet (HttpServletRequest Anfrage, HttpServletResponse Antwort) wirft ServletException, IOException { // Des Empfängers E-Mail-ID String = "[email protected]"; // Absender E-Mail-ID String aus = "[email protected]"; // Angenommen, Sie E-Mail-String host = "localhost" aus dem lokalen Host zu senden; // Systemeigenschaften Eigenschaften Properties = System.getProperties Get (); // Stellen Sie einen Mail-Server properties.setProperty ( "mail.smtp.host", Host) nach oben; // Holen Sie sich die Standard-Session-Objekt Session session = Session.getDefaultInstance (Eigenschaften); // Den Antwortinhalt Typ response.setContentType ( "text / html; charset = UTF-8"); Printwriter out = response.getWriter (); try { // Eine Standardmimemessage Objekte Mimemessage message = neue Mimemessage (Session); // Stellen Sie die From: Header-Feld des Headers. message.setFrom (neue Internetadresse (von)); // Set To: Header-Feld des Headers. message.addRecipient (Message.RecipientType.TO, neue Internetadresse (to)); // Stellen Sie den Betreff: Header-Feld message.setSubject ( "Dies ist der Betreff-Zeile!"); // Die tatsächliche HTML-Nachrichteninhalt Größe begrenzt message.setContent Set ( "<h1> Dies ist eigentliche Nachricht </ h1>", "Text / html"); // Senden Sie die Nachricht Transport.send (Nachricht); String title = "E-Mail"; String res = "erfolgreich gesendeten Nachrichten ..."; String docType = "\ n <DOCTYPE html!>"; out.println (docType + "<Html> \ n" + "<Head> <title>" + Titel + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" center \ ">" + Titel + "</ h1> \ n" + "<P align = \" center \ ">" + res + "</ p> \ n" + "</ Body> </ html>"); } Catch (MessagingException mex) { mex.printStackTrace (); } } }
Kompilieren und die oben Servlets ausführen, HTML-Nachrichten auf einem bestimmten E-Mail-ID senden.
Senden Sie Anhänge in E-Mail
Die folgenden Beispiele senden Sie eine E-Mail mit einem Anhang auf Ihrem Computer sein. Dies setzt voraus , Ihremlokalen Host auf das Internet und E-Mail - Support verbunden ist.Während sichergestellt wird, dass Java E-Mail-API-Pakete und JAF Paket alle JAR-Dateien in der CLASSPATH zur Verfügung stehen.
// Dateiname SendEmail.java import java.io. *; import java.util * .; Import javax.servlet * .; Import javax.servlet.http * .; Import javax.mail * .; Import javax.mail.internet * .; Import javax.activation * .; public class Sendemail erweitert HttpServlet { public void doGet (HttpServletRequest Anfrage, HttpServletResponse Antwort) wirft ServletException, IOException { // Des Empfängers E-Mail-ID String = "[email protected]"; // Absender E-Mail-ID String aus = "[email protected]"; // Angenommen, Sie E-Mail-String host = "localhost" aus dem lokalen Host zu senden; // Systemeigenschaften Eigenschaften Properties = System.getProperties Get (); // Stellen Sie einen Mail-Server properties.setProperty ( "mail.smtp.host", Host) nach oben; // Holen Sie sich die Standard-Session-Objekt Session session = Session.getDefaultInstance (Eigenschaften); // Den Antwortinhalt Typ response.setContentType ( "text / html; charset = UTF-8"); Printwriter out = response.getWriter (); try { // Eine Standardmimemessage Objekte Mimemessage message = neue Mimemessage (Session); // Stellen Sie die From: Header-Feld des Headers. message.setFrom (neue Internetadresse (von)); // Set To: Header-Feld des Headers. message.addRecipient (Message.RecipientType.TO, neue Internetadresse (to)); // Stellen Sie den Betreff: Header-Feld message.setSubject ( "Dies ist der Betreff-Zeile!"); // Erstellen Sie eine Nachricht Teil Bodypart messageBodyPart = new Mimebodypart (); // Geben Sie eine Nachricht messageBodyPart.setText ( "Dieser Nachrichtentext ist"); // Erstellen Sie eine mehrteilige Nachricht Mehrteiliger mehrt = new MimeMultipart (); // Set Textnachricht Teile multipart.addBodyPart (messageBodyPart); // Der zweite Teil ist ein Zubehör messageBodyPart = new Mimebodypart (); String filename = "file.txt"; Datasource-Quelle = new FileDataSource (Dateiname); messageBodyPart.setDataHandler (neue Datahandler (Quelle)); messageBodyPart.setFileName (Dateiname); multipart.addBodyPart (messageBodyPart); Senden // eine komplette Nachrichtenteil message.setContent (mehrteiliger); // Senden Sie die Nachricht Transport.send (Nachricht); String title = "E-Mail"; String res = "erfolgreich per E-Mail senden ..."; String docType = "\ n <DOCTYPE html!>"; out.println (docType + "<Html> \ n" + "<Head> <title>" + Titel + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" center \ ">" + Titel + "</ h1> \ n" + "<P align = \" center \ ">" + res + "</ p> \ n" + "</ Body> </ html>"); } Catch (MessagingException mex) { mex.printStackTrace (); } } }
Kompilieren und die oben Servlets ausführen, senden Sie Nachrichten mit Dateianhängen an einem bestimmten E-Mail-ID.
Die Benutzerauthentifizierung Abschnitt
Wenn Sie die E-Mail-Server-Benutzer-ID und Passwort-Authentifizierung zur Verfügung stellen müssen, können Sie die folgenden Eigenschaften festlegen:
props.setProperty ( "mail.user", "myuser"); props.setProperty ( "mail.password", "mypwd");
Der Rest des Abgabemechanismus e-mail ist konsistent mit den oben erklären.