Wenn wir normalerweise online gehen, verwenden wir häufig die Website der Website. Es gibt viele Methoden, z. B. das Senden von Textnachrichten zum Überprüfen und Senden von E -Mail -Nachrichten. Vor kurzem wurde im SSH -Framework ein einfacher E -Mail -Aktivierungslink an die Mailbox hergestellt und dann eine Funktion zum Registrieren von Benutzern aktiviert. Der MailServer, den ich benutze, ist ein einfacher Mail -Mailserver, der sich auf das Paket javax.mail.jar bezieht. Wie der Name schon sagt, bietet Javamail Entwicklern Programmierschnittstellen im Zusammenhang mit der Verarbeitung von E -Mails. Es ist eine API, die von Sun veröffentlicht wurde, um E -Mails zu behandeln. Es kann bequem einige häufig verwendete E -Mail -Transfers durchführen.
【Gemeinsame Kategorien Einführung】
Hier sind einige häufig verwendete Klassen. Lassen Sie mich sie Ihnen vorstellen:
【Authentikator】
Dies ist eine abstrakte Klasse, die über Benutzername und Passwort auf geschützte Ressourcen zugreift, die E -Mail -Server sind. Nach Abschluss der Erstellung muss der Authentikator bei der Sitzung registriert sein. Wenn dann eine Authentifizierung erforderlich ist, wird der Authentikator benachrichtigt.
【Nachricht】
Dies ist eine abstrakte Klasse, um Nachrichten zu erstellen, die gesendet werden sollen, z. B. Themen und Inhalt. Es muss eine Unterklasse geben, um die Methode zu implementieren.
【Sitzung】
Die Sitzungsklasse definiert eine grundlegende Mail-Sitzung, die die Auftragsklasse der Java-Mail-API auf höchster Ebene ist. Alle anderen Klassen sind nur in dieser Sitzung wirksam. Sitzungsobjekte verwenden Java.util.Properties -Objekte, um Informationen wie Mailserver, Benutzername, Passwort und andere Informationen zu erhalten, die in der gesamten Anwendung gemeinsam genutzt werden. Diese Sitzungsklasse repräsentiert eine Mail -Sitzung in Javamail. Jede Javamail-basierte Anwendung hat mindestens eine Sitzung, kann jedoch so viele Sitzungen wie möglich abhalten.
Sitzung sendmailSession;
sendmailSession = session.getInstance (props, null);
【Transport】
Der letzte Teil des Nachrichtensendens besteht darin, die Transportklasse zu verwenden. Diese Klasse sendet Nachrichten in der vom Protokoll angegebenen Sprache (normalerweise SMTP). Es ist eine abstrakte Klasse und funktioniert etwas ähnlich wie die Sitzung. Durch Aufrufen der statischen Send () -Methode kann die Standardversion der Klasse verwendet werden: Transport.Send (Nachricht). Alternativ können die Leser eine bestimmte Instanz aus einer Sitzung gegen ihr eigenes Protokoll erhalten, den Benutzernamen und das Passwort übergeben (nicht, wenn nicht erforderlich), eine Nachricht senden und dann die Verbindung schließen.
【Code -Implementierung】
Mail -Toolklasse:
Paket cn.itcast.shop.utils; Import Java.util.Properties; import Javax.mail.Authenticator; Javax.Mail.Message importieren; import javax.mail.message.RecipientType; import javax.mail.message.RecipientType; Javax.Mail.MessagingException importieren; Javax.Mail.PasswordAuthentication importieren; Javax.Mail.Session importieren; importieren javax.mail.transport; importieren javax.mail.internet.addressException; import javax.mail.internet.interneTadDress; importieren javax.mail.internet.mimemessage; / ** * Mail-Senden-Toolklasse * @Author Zhouzhou * @date 2016-1-1 * @time 08:52:47 AM */ public class mailuitls {public static void sendmail (String an String-Code) {/ ** * 1. props.setProperty ("mail.host", "localhost"); Session Session = session.getDefaultInstance (Props, New Authenticator () {@Override Protected PasswordAuthentication getPasswordAuthentication () {// Todo Auto-Generated-Methode Stub Return New PasswordAuthentication ("[email protected]", "111");}}); // 2. Erstellen Sie eine E -Mail -Sende -Objektnachricht meldung = new mimemessage (Sitzung); // 3. Setzen Sie den Absender -Versuch {message.setfrom (neue InternetDress ("[email protected]")); // Setzen Sie die Empfängernachricht. // title message.setsubject ("Offizielle Aktivierungs -E -Mail von Zhouzhou Mall"); Message.SetContent ("<H1> AZZ Mall Offizielle Aktivierungs -E -Mail! Klicken Sie auf den Link unten, um den Aktivierungsvorgang abzuschließen! </h1> <h3> <a href = 'http: //192.168.21.114: 8080/shop/user_active.action? code = "+code+"'> http://192.168.21.114:8080/shop/user_active.action?code= "code+" </a> </a> </a> </h3> ","; // 3.. E -Mail senden: transport.send (meldung); } catch (adressException e) {// Todo automatisch generierter Block e.printstacktrace (); } catch (MessagingException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); }} public static void main (String [] args) {sendmail ("[email protected]", "Ihr Aktivierungscode ist AZZ19931016"); }} Die Business Layer des Benutzers ruft diese Klasse bei der Registrierung auf und verwendet die Sendmail -Methode.
Paket cn.itcast.shop.user.service; import org.springframework.transaction.annotation.transactional; import cn.itcast.shop.user.dao.userdao; import cn.itcast.shop.user.vo.user; import cn.itcast.shop.utils.mailuitls; import cn.itcast.shop.utils.uuidutils; // Business Layer @Transactional Public Class UserService {// Die Methode installieren, um den Benutzer nach Benutzername private userDao userDao abzufragen; public void setUserdao (userDao userDao) {this.userdao = userDao; } public User findByUnername (String -Benutzername) {return userDao.findbyUnername (Benutzername); } // Business Layer: Vollständige Benutzerregistrierung public void speichern (Benutzer Benutzer) {// Todo automatisch generierte Methode Stub // Daten im Datenbank user.setState (0); // 1 wurde aktiviert, 0 wurde nicht aktiviert String code = uUidutils.getuuid ()+Uuidutils.getuUid (); user.setCode (Code); userDao.save (Benutzer); // Aktivierungs -E -Mail senden; Mailuitls.sendmail (user.getemail (), Code); } // Die Business Layer querys den Benutzer basierend auf dem Aktivierungscode öffentlicher Benutzer findByCode (String -Code) {return userDao.findByCode (Code); } // Methode zum Ändern des Status des Benutzers public void update (Benutzer existener) {userDao.update (Exemplar); } // Methode zum Anmelden im öffentlichen Benutzeranmeldung (Benutzerbenutzer) {userDao.login (Benutzer) zurückgeben; }}Schließlich wurde dieser Effekt erreicht:
Das Obige dreht sich alles um diesen Artikel, ich hoffe, es wird für das Lernen aller hilfreich sein.