In diesem Artikel wird die Methode der Java -Programmierung beschrieben, um zeitgesteuerte E -Mail -Senden zu implementieren. Teilen Sie es für Ihre Referenz wie folgt weiter:
Kürzlich schlug der Kunde bei der Arbeit an einem Projekt eine Anforderung vor: Das System sendet regelmäßig E -Mails an seine Kunden, um den Effekt der Benachrichtigung zu erreichen. Teilen wir zuerst die Beispiele mit Ihnen.
Zunächst wird vorgestellt, dass der Java-Timer (java.util.timer) die Funktion der geplanten Aufgaben regelmäßig ausführt. TIMERTask)
Zum Beispiel: Führen Sie den Task -Timer.Schedule (Timertask, 0, 60 * 60 * 1000) aus;
Der erste Parameter der Zeitplanmethode ist die Aufgabe. die Intervallzeit
Da wir hoffen, dass der Timer beim Start des Webprojekts automatisch mit dem Timing beginnen kann, sodass die Aufgaben während des gesamten Lebens des Webprojekts regelmäßig ausgeführt werden Die Klasse startet den Timer.
Um den Servlet -Listener zu verwenden, müssen Sie die Schnittstelle javax.servlet.servletContextListener implementieren. Folgendes ist ein Beispiel:
public class mytimerTask implementiert servletContextListener {private timer timer = null; // Initialisieren Sie den Hörer hier, und der Hörer beginnt, wenn Tomcat gestartet wird. Protokolle können in der Tomcat -Protokoll die Aufgabe ansehen SendEmail (Ereignis. GetServletContext ()), 0,24*60*60*1000);Verwenden Sie Javamail, um E -Mails zu senden. Erfordert zwei Pakete (ich habe Folgendes hochgeladen, laden Sie es einfach herunter): Aktivierung.jar mail.jar Senden Sie diese beiden Berichte an das LIB -Verzeichnis des Projekts
öffentliche Klasse Sendemail erweitert Timertask {private servletContext context = null; ("E -Mail senden") Der Server von 163 wird verwendet, um props.put ("mail.smtp.auth", "true"); ; Dies ist meine E -Mail -Adresse. . To); .SetContent (tContent, "text/html; charSet = utf-8"); // Setzen MimemultiPart -Objekt zum Speichern von Bodypart -Paaren // Bild (in der Tat kann mehrere gespeichert werden) mm.addbodypart (MDP); // Bodypart zum MimemultiPart -Objekt (mehrere Bodyparts können hinzugefügt werden) Meldung MM als Inhalt der Nachrichtenobjektmeldung. /Das E -Mail -Adresskonto -Passwort, zusätzlich, es ist mein Kontokennwort. Bitte ändern Sie es, wenn Sie es verwenden. Transport.SendMessage (Message, Message.GetAllRecipients ());Der Timer ist in web.xml konfiguriert wie:
<? http://www.w3.org/2001/xmlschema-instance "xsi: schemalocation =" http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/ J2EE/web-App_2_4.xsd "> <Hörer> <Hörer-Klasse> cachay.saga.utils.mytimerTask </Listener-Klasse> </Listener> </web-App>
Zu diesem Zeitpunkt wurden alle Vorgänge abgeschlossen und Aktivierung.jar mail.jar muss hinzugefügt werden