Lorsque nous allons généralement en ligne, nous utilisons souvent l'inscription du site Web. Il existe de nombreuses méthodes, telles que l'envoi de messages texte pour vérifier et envoyer des e-mails. Récemment, dans le cadre du SSH Framework, un simple lien d'activation par e-mail a été fait à la boîte aux lettres, puis activer une fonction de l'enregistrement des utilisateurs. Le MailServer que j'utilise est un serveur de messagerie facile, qui fait référence au package javax.mail.jar. Comme son nom l'indique, Javamail fournit aux développeurs des interfaces de programmation liées au traitement des e-mails. Il s'agit d'une API publiée par Sun pour gérer les e-mails. Il peut facilement effectuer certains transferts de courrier couramment utilisés.
【Catégories communes Introduction】
Voici quelques classes couramment utilisées, permettez-moi de vous les présenter:
【Authentificateur】
Il s'agit d'une classe abstraite qui accède aux ressources protégées via le nom d'utilisateur et le mot de passe, qui sont des serveurs de courrier. Une fois la création terminée, l'authentificateur doit être enregistré auprès de la session. Ensuite, lorsque l'authentification est requise, l'authentificateur sera informé.
【Message】
Il s'agit d'une classe abstraite pour créer des messages à envoyer, tels que des sujets et du contenu. Il doit y avoir une sous-classe pour implémenter la méthode.
【Session】
La classe de session définit une session de messagerie de base, qui est la classe d'entrée de niveau la plus élevée de l'API Mail Java. Toutes les autres classes ne sont efficaces qu'au cours de cette session. Les objets de session utilisent des objets java.util.properties pour obtenir des informations, telles que le serveur de messagerie, le nom d'utilisateur, le mot de passe et d'autres informations partagées dans l'application. Cette classe de session représente une session de messagerie à Javamail. Chaque application basée sur Javamail a au moins une session mais peut avoir autant de sessions que possible.
Session SendmailSession;
sendmailSession = session.getInstance (accessoires, null);
【Transport】
La dernière partie de l'envoi du message est d'utiliser la classe de transport. Cette classe envoie des messages dans la langue spécifiée par le protocole (généralement SMTP). Il s'agit d'une classe abstraite, et cela fonctionne quelque peu de même pour session. En appelant la méthode Static Send (), la version par défaut de la classe peut être utilisée: transport.send (message). Alternativement, les lecteurs peuvent obtenir une instance spécifique à partir d'une session par rapport à leur propre protocole, passer le nom d'utilisateur et le mot de passe (non sinon nécessaire), envoyer un message, puis fermer la connexion.
【Implémentation du code】
Classe d'outils de courrier:
Package cn.itcast.shop.utils; import java.util.properties; import javax.mail.authenticator; import javax.mail.mesage; Importer javax.mail.message.recipentType; Importer javax.mail.message.recipentType; Importer javax.mail.messagingException; Importer javax.mail.passwordAuthentication; Importer Javax.mail.Session; Importer javax.mail.transport; Importer javax.mail.internet.addressException; Importer javax.mail.internet.internetAddress; Importer javax.mail.internet.mimeMessage; / ** * Classe d'outils d'envoi de courrier * @author zhouzhou * @date 2016-1-1 * @time 08:52:47 AM * / classe publique MailLiSiSLS {public static void sendmail (chaîne à, code de chaîne) {/ ** * 1. Obtenir la session * 2. Prophes.setProperty ("Mail.host", "LocalHost"); Session session = session.getDefaultInstance (accessoires, new Authenticator () {@Override Protected PasswordAuthentication GetPasswordAuthentication () {// TODO Méthode générée automatiquement Stub Retour New PasswordAuthentication ("[email protected]", "111");}}); // 2. Créer le message Email Envoi du message d'objet = new MiMeMessage (session); // 3. Définissez l'expéditeur essayez {message.setFrom (nouveau InternetAddress ("[email protected]")); // Définissez le destinataire Message.AdDrecicipient (destinataireType.to, nouveau InternetAddress (TO)); // Title Message.SetSubject ("Email d'activation officiel de Zhouzhou Mall"); Message.SetContent ("<h1> Azz Mall Email d'activation officielle! Cliquez sur le lien ci-dessous pour terminer l'opération d'activation! </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> </h3> "," Text / html; // 3. Envoyer un e-mail: transport.send (message); } Catch (AddressException e) {// TODO Générations auto-générées Block E.PrintStackTrace (); } Catch (MessagedException e) {// TODO Block de catch généré automatiquement e.printStackTrace (); }} public static void main (String [] args) {sendmail ("[email protected]", "Votre code d'activation est azz19931016"); }} La couche commerciale de l'utilisateur appelle cette classe lors de l'enregistrement et utilise la méthode Sendmail.
package cn.itcast.shop.user.service; import org.springframework.transaction.annotation.transactional; Importer cn.itcast.shop.user.dao.userdao; Importer cn.itcast.shop.user.vo.user; Importer cn.itcast.shop.utils.mailuitls; Importer cn.itcast.shop.utils.uuidutils; // Business Layer @Transactional Public Class UserService {// Installation de la méthode pour interroger l'utilisateur par nom d'utilisateur UserDao UserDao; public void SetUserDao (userdao userdao) {this.userdao = userdao; } utilisateur public findByUserName (String username) {return userdao.findByUsername (nom d'utilisateur); } // Couche commerciale: Enregistrement de l'utilisateur complet public void Enregistrer (utilisateur utilisateur) {// TODO Méthode générée automatiquement Stub // Enregistrer les données dans la base de données user.setState (0); // 1 a été activée, 0 n'a pas été activé le code de chaîne = uuidutils.getuuid () + uuidudutils.getUuid (); user.setcode (code); userDao.save (utilisateur); // Envoyer un e-mail d'activation; MailuItls.SendMail (user.getEmail (), code); } // La couche métier interroge l'utilisateur en fonction du code d'activation utilisateur public findBycode (String code) {return userdao.findBycode (code); } // Méthode pour modifier le statut de l'utilisateur public public Update (utilisateur existez) {userdao.update (exisUser); } // Méthode pour se connecter à la connexion de l'utilisateur public (utilisateur utilisateur) {return userdao.login (utilisateur); }}Enfin, cet effet a été réalisé:
Ce qui précède concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.