Wie sende ich eine E-Mail von JSP / Servlet? Ist es notwendig, ein paar Jars herunterzuladen oder können Sie eine E-Mail von JSP / Servlets ohne Jars schicken?
Wie würde mein Java-Code aussehen?
Wie würde mein HTML-Code aussehen (falls vorhanden)?
Sind mehrere Klassen erforderlich oder können Sie nur eine Klasse verwenden?
Die Mailer-Logik sollte in eine eigenständige Klasse übergehen, die Sie überall wiederverwenden können. Die JSP-Datei sollte nur Präsentationslogik und Markup enthalten. Die Servlet-Klasse sollte die Anfrage nur auf die geeignete Weise verarbeiten und die Mailerklasse aufrufen. Hier sind die Schritte, die Sie ergreifen müssen:
Entscheiden Sie zuerst, welchen SMTP-Server Sie verwenden möchten, damit Sie E-Mails senden können. Der von Ihrem ISP? Die von Google Mail? Yahoo? Website-Hosting-Anbieter? Ein selbst gepflegter? Unabhängig davon, geben Sie den Hostnamen, den Port, den Benutzernamen und das Passwort dieses SMTP-Servers an. Du wirst diese Information brauchen.
Erstellen Sie eine einfache Java-Klasse, die JavaMail-API verwendet, um eine E-Mail-Nachricht zu senden. Die JavaMail-API wird mit einem hervorragenden Tutorial und FAQ . Benennen Sie die Klasse Mailer
und geben Sie ihr eine send()
-Methode (oder was immer Sie wollen). Testen Sie es mit einer Testklasse mit einer main()
Methode wie folgt:
Sie können es so einfach oder fortgeschritten machen, wie Sie möchten. Es spielt keine Rolle, solange Sie eine Klasse haben, mit der Sie eine solche Mail senden können.
Nun zum JSP-Teil, es ist nicht ganz klar, warum Sie JSP erwähnt haben, aber da eine JSP sollte nur HTML darstellen, ich wette, dass Sie in einer JSP so etwas wie ein Kontaktformular haben möchten. Hier ist ein Kickoff-Beispiel:
%Vor%Ja, einfach, einfach markieren / stylen Sie es wie Sie wollen.
Erstellen Sie jetzt eine Servlet-Klasse, die auf einem url-pattern
von /contact
(dem Formular, an das gesendet wird) hört und die doPost()
-Methode (dieselbe Methode, die das Formular verwendet) wie folgt implementiert:
Das ist es. Halte es einfach und sauber. Jedes Ding hat seine eigenen Verantwortlichkeiten.
Sie können E-Mails von jsp oder servlet senden, während wir sie mit java mail api aus der Klassendatei senden. Hier ist der Link, der Ihnen dabei helfen wird:
Ich benutze Javamail-Paket und es funktioniert sehr gut. Die oben gezeigten Beispiele sind gut, aber wie ich sehen kann, haben sie keine Parameter in externen Dateien definiert (zB web.xml), was empfohlen wird ...
Stellen Sie sich vor, Sie möchten Ihre E-Mail-Adresse oder Ihren SMTP-Host ändern. Es ist viel einfacher, die Datei web.xml als 10 Servlets zu bearbeiten, in denen Sie die E-Mail-Funktion verwendet haben. Fügen Sie beispielsweise die nächsten Zeilen in web.xml
hinzu %Vor%Dann können Sie über Servlet mit
auf diese Parameter zugreifen %Vor%Diese grundlegende Einrichtung funktionierte gut:
Importieren Sie mail.jar und activation.jar in den Ordner WEB_INF / lib im Projekt.
Erhalten Sie mail.jar von JavaMail (neueste Version von der offiziellen Website) .
Erhalten activation.jar von Ссылка p>
1. Erstes jsp: emailForm.jsp
Dies ist ein Formular, das verwendet wird, um die Absender-, Empfängerdetails-, Betreff- und Nachrichteninhalte an die emailUtility
zu übergeben %Vor%2. Zweites jsp: emailUtility.jsp
Dies ist die Formularaktion, die im vorherigen JSP (emailForm.jsp) erwähnt wurde.
%Vor%3. Gehe zur folgenden URL
4. Starten Sie den Server neu, wenn er einen Serverfehler verursacht.