Cuando generalmente nos conectamos en línea, a menudo usamos el registro del sitio web. Existen muchos métodos, como enviar mensajes de texto para verificar y enviar mensajes de correo electrónico. Recientemente, en el marco SSH, se realizó un enlace de activación de correo electrónico simple en el buzón y luego activó una función de registro de usuarios. El servidor de correo que estoy usando es un servidor de correo fácil de correo, que se refiere al paquete javax.mail.jar. Como su nombre indica, Javamail proporciona a los desarrolladores interfaces de programación relacionadas con el procesamiento de correos electrónicos. Es una API lanzada por Sun para manejar el correo electrónico. Puede realizar convenientemente algunas transferencias de correo comúnmente utilizadas.
【Categorías comunes Introducción】
Aquí hay algunas clases de uso común, déjame presentarlas:
【Autenticador】
Esta es una clase abstracta que accede a los recursos protegidos a través del nombre de usuario y la contraseña, que son servidores de correo. Después de completar la creación, el autenticador debe registrarse en la sesión. Luego, cuando se requiere autenticación, se notificará al autenticador.
【Mensaje】
Esta es una clase abstracta para crear mensajes que se enviarán, como temas y contenido. Debe haber una subclase para implementar el método.
【Sesión】
La clase de sesión define una sesión de correo básica, que es la clase de entrada de más alto nivel de Java Mail API. Todas las demás clases solo son efectivas a través de esta sesión. Los objetos de sesión usan objetos java.util.properties para obtener información, como el servidor de correo, el nombre de usuario, la contraseña y otra información compartida en toda la aplicación. Esta clase de sesión representa una sesión de correo en Javamail. Cada aplicación basada en Javamail tiene al menos una sesión, pero puede tener tantas sesiones como sea posible.
Session SendMailsession;
sendmailsession = session.getInstance (Props, NULL);
【Transporte】
La última parte del envío de mensajes es usar la clase de transporte. Esta clase envía mensajes en el idioma especificado por el protocolo (generalmente SMTP). Es una clase abstracta, y funciona de manera similar a la sesión. Al llamar al método static send (), se puede usar la versión predeterminada de la clase: transport.send (mensaje). Alternativamente, los lectores pueden obtener una instancia específica de una sesión en su propio protocolo, pasar el nombre de usuario y la contraseña (no es necesario), enviar un mensaje y luego cerrar la conexión.
【Implementación del código】
Clase de herramienta de correo:
paquete cn.itcast.shop.utils; import java.util.properties; import javax.mail.authenticator; import javax.mail.message; import javax.mail.message.recipientType; import javax.mail.message.recipientType; import javax.mail.messagingException; import javax.mail.passwordAuthentication; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.addressException; import javax.mail.internet.internetaddress; import javax.mail.internet.mimemessage; / ** * Clase de herramienta de envío de correo * @Author Zhouzhou * @Date 2016-1-1-11 * @Time 08:52:47 am */ public class Mailuitls {public static void sendmail (cadena a, código de cadena) {/ ** * 1. Obtener sesión * 2. Cree un mensaje de objeto de correo de código * 3. Enviar correo electrónico transporte */ ** * 1. Obtener objeto de conexión */ propiedades props = nuevas propiedades = nuevas propiedades (); propsssetProperty ("mail.host", "localhost"); Sesión session = session.getDefaultInstance (props, new Authenticator () {@Override PassionAuthentication getPassPasswlayauthentication () {// TODO Método Generado automático Stub Devuelve nueva contraseña ("[email protected]", "111");}}); // 2. Cree un mensaje de objeto de envío de correo = new Mimemessage (sesión); // 3. Establezca el remitente Try {Message.setFrom (nuevo Internetaddress ("[email protected]")); // establecer el mensaje del destinatario. // Title Message.SetSubject ("Correo electrónico de activación oficial desde Zhouzhou Mall"); Message.setContent ("<h1> Azz Mall Correo electrónico de activación oficial! Haga clic en el enlace a continuación para completar la operación de activación! </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> ",", ", "texto/html; charset = utf-8"); // 3. Enviar correo electrónico: transport.send (mensaje); } catch (DirectionException e) {// tODO Auto Generado Bloque E.PrintStackTrace (); } Catch (MessionGingException e) {// TODO Auto Generado Bloque E.PrintStackTrace (); }} public static void main (string [] args) {sendmail ("[email protected]", "Su código de activación es AZZ19931016"); }} La capa comercial del usuario llama a esta clase cuando se registra y usa el método SendMail.
paquete cn.itcast.shop.user.service; importar 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 {// Instalación del método para consultar al usuario por nombre de usuario userdao userdao; public void setUserDao (userdao userDao) {this.userdao = userDao; } Public User FindByUsername (String UserName) {return userDao.findByUsername (nombre de usuario); } // Capa de negocios: registro completo de usuarios registro public void save (usuario de usuario) {// TODO Método Generado automático STUB // Guardar datos en la base de datos User.setState (0); // 1 se ha activado, 0 no se ha activado String String Code = uuidUtils.getuuid ()+uuidutils.getuuid ();; user.setCode (código); userdao.save (usuario); // Enviar correo electrónico de activación; Mailuitls.sendmail (user.getEmail (), código); } // La capa de negocios consulta al usuario en función del código de activación Public User FindByCode (código de cadena) {return userDao.findbyCode (código); } // Método para modificar la actualización publicitaria del estado del usuario (User Existuser) {userDao.Update (Existuser); } // Método para iniciar sesión en el inicio de sesión de usuario público (usuario de usuario) {return userDao.login (usuario); }}Finalmente, se logró este efecto:
Lo anterior se trata de este artículo, espero que sea útil para el aprendizaje de todos.