Hoy en día, el correo electrónico juega un papel cada vez más importante en nuestras vidas, y cada uno de nosotros lo tratará (al menos de vez en cuando recibimos spam inexplicable). En el trabajo, el uso de correo electrónico para comunicarse puede hacer que nuestro trabajo sea rastreable y más formal. Esto es operado manualmente por nosotros. En la vida, después de registrar una cuenta en un sitio web, el sitio web enviará automáticamente un correo electrónico de bienvenida y nos pedirá que confirmemos si se registrará para evitar el registro malicioso. Por supuesto, esto es imposible operarlo manualmente como si trabajamos. Javamail en 13 Core Technologies of Java nos proporciona API para operar relacionadas con los correos electrónicos.
1. Servidor de correo
Para proporcionar funcionalidad de correo electrónico en Internet, debe estar disponible un servidor de correo electrónico dedicado. Se configuran una gran cantidad de servidores de correo electrónico en Internet. Por ejemplo, los sitios web como Sina.com, Qq.com, 163.com proporcionan servidores de correo electrónico gratuitos para el público, y muchas compañías también proporcionan servidores de correo electrónico para empleados internos, que pueden enviar y recibir correos electrónicos entre sí. Entonces, ¿cuál es la función del servidor de correo? Puede ayudarnos a enviar correos electrónicos, recibir correos electrónicos y proporcionarnos servicios de recolección de correo. Esto es similar a la oficina de correos en la vida real. No solo puede recibir correos electrónicos, sino que también nos brindamos servicios para recoger correos electrónicos, y también nos ayuda a enviar correos electrónicos. Las siguientes imágenes ilustran vívidamente las funciones del servidor de correo
(1) recibir correos entregados por los usuarios;
(2) reenviar el correo electrónico enviado por el usuario al servidor de correo de destino;
(3) recibir correos electrónicos reenviados por otros servidores de correo y almacene los correos electrónicos en el buzón del usuario que administran;
(4) Proporcionar servicios de lectura a los usuarios que vienen a leer correos electrónicos.
Los servidores de correo se pueden dividir en dos tipos de acuerdo con los protocolos de comunicación: servidor SMTP y servidor POP3/IMAP. Las funciones 1, 2 y 3 en la figura anterior son completadas por el servidor SMTP, mientras que las funciones 4 son completadas por el servidor POP3.
2. Correo electrónico
Se pueden abrir varias direcciones de correo electrónico en cada servidor de correo electrónico. La dirección de correo electrónico también se llama una dirección de correo electrónico. Es similar a la dirección postal en la vida real. Los usuarios pueden recibir correos electrónicos de otros y enviar correos electrónicos a otros a través de esta dirección. Obtener un correo electrónico requiere aplicar en el servidor de correo. Para ser precisos, el correo electrónico es en realidad una cuenta que el usuario aplica en el servidor de correo. El servidor de correo guarda el correo recibido al espacio del buzón asignado para una determinada cuenta (por lo que necesitamos limpiar nuestro correo regularmente, de lo contrario no podremos recibir un nuevo correo si el espacio asignado excede el espacio asignado). El usuario inicia sesión en el servidor de correo para verificar los mensajes de correo electrónico recibidos por la dirección a través del nombre de usuario y la contraseña que solicita.
3. El proceso de transmisión de correos electrónicos
El proceso de transmisión del correo electrónico puede estar representado por la siguiente figura
La descripción del proceso de línea continua en la figura anterior:
1. Después de que el cliente de correo de [email protected] establece una conexión de red con el servidor SMTP de Sina, inicia sesión con el nombre de usuario y la contraseña de LISI, y utiliza el protocolo SMTP para enviar el correo electrónico al servidor SMTP de Sina;
2. Después de recibir el correo electrónico de la dirección enviado por [email protected], el servidor SMTP de SINA determina primero si la dirección de correo electrónico del destinatario cae dentro de la jurisdicción del servidor SMTP en función del sufijo de dirección del destinatario. Si es así, el correo se almacenará directamente en la dirección de correo electrónico del destinatario. De lo contrario, el servidor SMTP de SINA consultará el servidor DNS para el registro MX del nombre de dominio representado por el sufijo de la dirección de correo electrónico del destinatario (SOHU.com) para obtener la información del servidor SMTP de SOHU de SOHU, y luego establecer una conexión con el servidor SMTP de SOHO y usar el protocolo SMTP para enviar el correo electrónico al servidor SMTP SOHU;
3. Después de que el servidor SMTP de Soho reciba el correo electrónico del servidor SMTP de Sina, también determinará si el correo electrónico cae dentro de la jurisdicción del servidor SMTP en función de la dirección del destinatario. Si es así, almacene el correo electrónico directamente en el buzón del destinatario. De lo contrario, el servidor SMTP de SOHU puede continuar reenviando el correo electrónico;
4. La cuenta [email protected] establece una conexión de red con el servidor POP3/IMAP de Soho a través del cliente, y después de iniciar sesión con éxito, luego verifique si hay un correo electrónico nuevo en el correo electrónico [email protected] a través del protocolo POP3/IMAP. Si es así, use el protocolo POP3 o IMAP para leer el correo electrónico en el buzón.
El proceso de línea punteada es similar al proceso de línea continua y ya no se repite.
Javamail API es un paquete de desarrollo estándar adoptado por Sun para facilitar a los desarrolladores de Java que envíen y reciban el correo de línea sólida en las solicitudes. Admite algunos protocolos de correo comúnmente utilizados, como SMTP, POP3, IMAP y MIME. Para usar esta API, por supuesto, primero debe descargar el paquete JAR relevante. La última versión es 1.5.6, descarga la dirección: https://java.net/projects/javamail/pages/home.
La API de Javamail generalmente se puede dividir en las siguientes tres categorías de acuerdo con sus funciones:
1. API para crear y analizar contenido de correo electrónico: la clase de mensaje es la API central para crear y analizar correos electrónicos, y su objeto de instancia representa un correo electrónico;
2. API para enviar correos electrónicos: la clase de transporte es la clase API central para enviar correos electrónicos. Su objeto de instancia representa el objeto de envío de correo que implementa un determinado protocolo de envío de correo electrónico, como el protocolo SMTP;
3. API para recibir correos electrónicos: la clase de la tienda es la clase API principal para recibir correos electrónicos. Su objeto de instancia representa el objeto de recepción de correo electrónico que implementa un cierto protocolo de recepción de correo electrónico, como el protocolo POP3.
Clase de sesión:
La clase de sesión se utiliza para definir la información del entorno requerida por toda la aplicación, así como recopilar información de sesión para que el cliente establezca una conexión de red con el servidor de correo, como el nombre de host, el número de puerto y el protocolo de envío de correo y recepción utilizado. Los objetos de la sesión crean objetos de transporte y almacenan para la transmisión y recepción de correo en función de esta información, y proporcionan soporte de información al crear objetos de mensajes para los clientes.
Las relaciones de las 4 clases anteriores son las siguientes:
La mayor parte del contenido anterior se extrae del libro "Explicación detallada del desarrollo del correo Java". Siguiente artículo Beginner de Javamail El segundo artículo Crear correo electrónico presentará cómo crear correo electrónico utilizando la API proporcionada por Javamail.