Introducción a los conceptos básicos de correo electrónico
El correo electrónico se utiliza para transmitir confianza y comunicarse en línea, y es uno de los servicios de Internet más importantes. Según las estadísticas, el 30% de los servicios de Internet están relacionados con el correo electrónico. Al mismo tiempo, no podemos negar que juegue un papel importante en nuestra vida diaria, trabajo y oficina. Por ejemplo: muchos proyectos de automatización de oficinas (OEA) tienen la función de enviar correos electrónicos. Si también usa métodos manuales como Outlook, no es adecuado. En esta era de alta velocidad, necesitamos proporcionar eficiencia laboral para que el trabajo pueda automatizarse. Al mismo tiempo, muchos sitios web también deben enviar correos electrónicos: enviar un correo electrónico de bienvenida a los usuarios recién registrados con su información de registro, enviar la información de actividad más reciente del sitio web a todos los miembros registrados a través del correo electrónico, etc.
Antes de comenzar el desarrollo del correo electrónico: necesitamos comprender varios conceptos: sistema de correo electrónico, servidor de correo, correo electrónico, software de cliente de correo, protocolo de transmisión de correo y proceso de transmisión de correo electrónico.
Sistema de correo electrónico
Similar a los servicios postales tradicionales, el sistema de correo electrónico consiste en una oficina de correo electrónico, un sistema de envío de correo electrónico y recepción. Los remitentes y destinatarios envían y reciben correos electrónicos a través de sistemas de envío y recepción de correo electrónico, que en realidad son programas de clientes de correo que se ejecutan en computadoras. La oficina de correo electrónico reproduce un puente, que en realidad es un programa de servidor de correo que se ejecuta en el servidor. El proceso de procesamiento de correo electrónico es similar al de los servicios postales.
Servidor de correo
Un servidor de correo es un dispositivo utilizado para administrar correos electrónicos. Hay una gran cantidad de servidores de correo electrónico disponibles en Internet, como: 126, 163, Hotmail ...
Las funciones principales proporcionadas por el servidor de correo electrónico:
1. Reciba correos electrónicos enviados por los usuarios.
2. Reenvíe el correo electrónico entregado por el usuario al servidor de correo de destino.
3. Reciba correos electrónicos reenviados por otros servidores de correo electrónico y almacene los correos electrónicos en los correos electrónicos del usuario que administran.
4. Proporcione usuarios que vienen a leer correos electrónicos para leer correos electrónicos.
Los servidores de correo forman el núcleo del sistema de correo electrónico. Cada destinatario tiene un buzón (buzón) ubicado en un determinado servidor de correo. El buzón de Bob se utiliza para administrar y mantener mensajes de correo electrónico que se le han enviado. Un viaje típico de un mensaje de correo electrónico comienza con el agente de usuario del remitente, el servidor de correo electrónico del remitente, se transfiere al servidor de correo electrónico del destinatario y luego se entrega a la dirección de correo electrónico del destinatario. Cuando Bob quiere ver los mensajes de correo electrónico en su buzón, el servidor de correo que almacena el buzón lo autenticará con el nombre de usuario y la contraseña que proporcionó. El servidor de correo de Alice también tiene que lidiar con la falla del servidor de correo de Bob. Si el servidor de correo de Alice no puede entregar mensajes de correo al servidor de correo de Bob de inmediato, el servidor de Alice los almacena en la cola de mensajes y luego intenta entregarlos más tarde. Este intento generalmente se realiza cada 30 minutos más o menos: si el intento no tiene éxito después de varios días, el servidor elimina el mensaje de la cola de mensajes y notifica al remitente (es decir, Alice) con otro mensaje de correo electrónico.
correo electrónico
El correo electrónico es un método de comunicación moderno que transmite y recibe información entre sí a través de la red. Es un método de comunicación que proporciona intercambio de información por medios electrónicos y es el servicio más utilizado en Internet. A través del sistema de correo electrónico de la red, los usuarios pueden contactar a los usuarios de Internet en cualquier rincón del mundo a un precio muy bajo y de una manera muy rápida. Estos correos electrónicos pueden ser de varias maneras, como texto, imágenes, sonido, etc., al mismo tiempo, los usuarios pueden obtener una gran cantidad de noticias gratuitas y correos electrónicos especiales, y realizar una búsqueda fácil de información.
El correo electrónico consta de dos partes: sobre y contenido. Los sobres también se llaman cabezales de correo, y el servidor de correo electrónico ofrece correo en función de la confianza en el sobre. El contenido se llama cuerpo de correo, que se utiliza para proporcionar el contenido específico del correo electrónico.
La dirección de correo electrónico en Internet es única en todo el mundo, y su formato es "nombre de correo electrónico@nombre de dominio del servidor de correo". Domain (dominio de correo) es la unidad de administración básica del servidor de correo electrónico. El servicio de correo electrónico está basado en el dominio, y cada buzón corresponde a un usuario. El nombre de dominio del servidor de correo debe ser un nombre de dominio DNS registrado y debe coincidir con el registro MX (conmutador de correo). DNS se utiliza para resolver los nombres de dominio y los nombres de host en las direcciones IP. El registro MX apunta al registro de host del servidor de correo del nombre de dominio y está dedicado a los servicios de correo.
Software de cliente por correo electrónico
El software del cliente de correo electrónico es responsable de comunicarse con el servidor de correo electrónico, que se utiliza principalmente para ayudar a los usuarios a enviar correos electrónicos al servidor SMTP y al servidor POP3/IMAP Mail para leer el correo electrónico del usuario. El software del cliente de correo electrónico generalmente integra escribir, enviar y recibir correos electrónicos.
Correo electrónico
Se pueden iniciar varias direcciones de correo electrónico en la parte superior de cada servidor de correo electrónico, también conocido como direcciones de correo electrónico. Es similar a una dirección postal de la vida real a través de la cual los usuarios aceptan y envían correos electrónicos de otros.
Obtener un correo electrónico requiere aplicar en el servidor de correo electrónico. Para ser precisos, el correo electrónico es en realidad una cuenta que el usuario aplica en el servidor de correo electrónico. El servidor de correo mantiene el correo recibido en el espacio del buzón asignado para una cuenta, y el usuario inicia sesión en el servidor de correo a través del nombre de usuario y la contraseña que solicita para ver los mensajes de correo electrónico que han recibido la dirección.
Proceso de transmisión de correo electrónico
El sistema de correo electrónico está en modo cliente/servidor. La entrega de correo electrónico requiere los siguientes 3 módulos importantes:
UA (agente de usuario de correo, agente de usuario de correo): el usuario trata con el servidor de correo electrónico a través de él. MUA es en realidad el software del cliente de correo.
MTA (Agente de transferencia de correo, Agente de transferencia de correo): es principalmente responsable del procesamiento de todos los correos recibidos y enviados, proporcionando servicios de entrega de correo a MUA o MTA, y recibir correos enviados por otros MTA.
MDA (Agente de entrega de correo, agente de entrega de correo): es responsable de la entrega local de correo. Cuando la MTA decide enviar un cierto correo electrónico al usuario local, la MTA entrega el correo electrónico al programa MDA para su distribución, es decir, se entrega al usuario.
El proceso de transmisión específico es el siguiente:
1. El remitente usa MUA para enviar el correo electrónico a la MTA.
2. Después de recibir el correo electrónico, la MTA determina si el destinatario es una cuenta local. Si se trata de una cuenta local, se entregará al MDA a la dirección de correo electrónico de la cuenta, complete el proceso de envío y salte al paso 5. Si no, realice el siguiente paso.
3. MTA decide cómo reenviar correos electrónicos en función de su configuración de reenvío de retransmisión de correo electrónico.
4. El MTA del propósito final entregará el MDA a su procesamiento, y el MDA entregará el correo electrónico a la dirección de correo electrónico del destinatario.
5. El destinatario usa MUA para conectarse al servidor donde la dirección de correo electrónico se encuentra a través del protocolo POP/IMAP, y solicita verificar si hay correos electrónicos en su bandeja de entrada. Si hay correo electrónico, el MUA del destinatario se transmitirá a través de él.
Nota: Se solicita al servicio de acceso al correo electrónico que sea el software POP o del servidor IMAP, no el MTA que recibió el correo electrónico. Los roles de los dos están separados.
Protocolo de transferencia de correo
La transmisión del servicio de correo electrónico utiliza principalmente los siguientes tres protocolos de red
SMTP (protocolo de transferencia de correo simple)
SMTP es un protocolo simple de transferencia de correo. El puerto TCP estándar es de 25. MUA envía el correo electrónico a la MTA, y la MTA envía el correo electrónico a la próxima MTA, los cuales deben usar SMTP. El objetivo de SMTP es entregar el correo de manera confiable y eficiente, es independiente del subsistema de entrega y requiere solo un canal que garantice que se transmitan las unidades del orden de los datos.
SMTP es un protocolo "unidireccional" que los usuarios no pueden recopilar de otros servidores de correo. En sí mismo adopta el modo cliente/servidor. El proceso SMTP responsable de enviar correo es el cliente SMTP, y el proceso SMTP responsable de recibir el correo es el servidor SMTP. Un proceso de comunicación SMTP completo incluye principalmente tres procesos: establecer una conexión, entregar correo y liberar una conexión.
Establecer una conexión: primero, el remitente envía el correo electrónico al caché de correo electrónico. El cliente SMTP escanea el caché de correo electrónico regularmente. Una vez que hay un mensaje, establece una conexión TCP con el servidor SMTP, y luego envía un comando HRLLO para adjuntar el nombre de host del remitente.
Correo electrónico de entrega: el cliente SMTP utiliza el comando de correo para comenzar a enviar el correo electrónico, que proporciona la dirección del remitente; Luego ejecuta el comando RCPT y proporciona la dirección del destinatario; Finalmente ejecuta el comando de datos para transferir el contenido de correo electrónico.
Libere la conexión: después de que se entrega el correo, el cliente SMTP envía un comando de salida para solicitar para cerrar la conexión TCP.
Pop (acuerdo de la oficina de correos)
Pop es el protocolo de correos. El puerto TCP estándar es 110. Principalmente utilizado para recibir correos electrónicos. MUA se conecta a la bandeja de entrada de usuario de MTA a través del protocolo POP para leer o descargar el correo de usuario en la bandeja de entrada.
El protocolo POP que se usa actualmente es POP3. POP3 usa TCP como protocolo de transmisión.
IMAP (Protocolo de acceso a información de Internet)
IMAP es un protocolo de acceso a mensajes de Internet. El puerto TCP estándar es 143, que también permite a MUA recolectar el correo de la MTA. La versión del protocolo IMAP de bola objetivo es IMAP4.
Tanto POP como IMAP se pueden usar para recopilar correos electrónicos, tanto en el modo cliente/servidor. La principal diferencia entre los dos es que recuperan los correos electrónicos de manera diferente. Al usar POP, el correo electrónico reside en el servidor. Una vez que se recibe el correo electrónico, el correo electrónico se descarga del servidor a la computadora del usuario. IMAP puede comprender la situación en la que el correo se almacena en el servidor, y el correo descargado todavía está atascado en el servidor para facilitar el archivo y el intercambio de correo.
Javamail
1. Introducción a Javamail
Javamail, como su nombre lo indica, proporciona una interfaz de programación para que los desarrolladores procesen 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. Javamail API es un paquete de desarrollo estándar proporcionado por Sun para facilitar a los desarrolladores de Java a implementar funciones de envío y recepción de correo electrónico en las aplicaciones. Admite algunos protocolos de correo electrónico de uso común, como SMTP, POP3 e IMAP. Cuando los desarrolladores usan la API de Javamail para escribir un software de procesamiento de correo electrónico, no necesitan considerar los detalles de implementación del protocolo de correo subyacente, simplemente llame a la clase API correspondiente en el paquete de desarrollo de Javamail.
2. Entorno de desarrollo de Javamail
Antes del desarrollo de Javamail, debe importar el paquete JAR correspondiente. El paquete JAR se puede descargar desde el sitio web oficial de Oracle: http://www.oracle.com/technetwork/java/javamail/index.html.
Después de completar la descarga, puede obtener el siguiente directorio:
Entre ellos, Mail.jar: es el paquete de desarrollo central que debe usarse para desarrollar programas de Javamail.
Subdirectorio LIB: este directorio contiene 5 paquetes independientes de desarrollo de correo electrónico: Smtp.jar, Pop3.Jar, IMap.jar y Mailapi.jar. Estos 5 archivos JAR están clasificados para envases para archivos mail.jar. Entre ellos, Mailapi.jar encapsula la clase API que crea contenido de correo y llama por correo envío y recepción a desarrolladores comunes, mientras que los otros tres archivos JAR encapsan el programa de implementación del servicio con sus nombres correspondientes al protocolo. . Al compilar programas de correo Java, solo necesita el archivo Mailapi.jar, pero en tiempo de ejecución, debe tener el programa de implementación de servicios subyacente del protocolo de correo correspondiente. Si solo necesita usar la función de envío de correo en la aplicación, solo puede instalar los dos archivos smtp.jar y mailapi.jar. Si solo necesita usar la función de recepción de correo, solo puede instalar los dos archivos jar pop3.jar, imap.jar y mailapi.jar sin instalar todo el archivo mail.jar.
El directorio lib es el siguiente:
3. Introducción a la API de Javamail
La API de Javamail generalmente se divide en las siguientes tres categorías de acuerdo con sus funciones:
1. Cree y analice la API de contenido de correo electrónico. La clase de mensaje es la API central para crear y analizar correos electrónicos. Su objeto de instancia representa un correo electrónico.
2. La API para enviar correos electrónicos. La clase de transporte es la clase API central para enviar correos. Su objeto de instancia representa el objeto de envío de correo que implementa un cierto protocolo de envío de correo, como el protocolo SMTP.
3. API para recibir correos electrónicos. La clase de la tienda es la clase API central para recibir el correo. 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.
El flujo de trabajo de Javamail es el siguiente:
En este flujo de trabajo, los cuatro objetos, mensajes, sesión, transporte y tienda están estrechamente conectados para enviar y recibir un correo electrónico. Solo necesitamos comprender las funciones y funciones de estas cuatro API básicas, conocer sus relaciones de trabajo y su flujo de trabajo de correo electrónico, y podemos escribir fácilmente Javamail. Para las clases auxiliares de Javamail, cuando las necesitamos, podemos seguir las pistas y verificar los documentos para resolver el problema.
Introducción a la API central:
Mensaje
La clase de mensaje es la API central para crear y analizar el correo, y su objeto de instancia representa un correo electrónico. Cuando el cliente envíe un correo electrónico, primero use la API de correo electrónico, encapsule los datos de correo electrónico creados en el objeto de mensaje y luego pase este objeto a la API de envío de correo electrónico para enviarlo. Cuando el cliente recibe el correo electrónico, la API que recibe el correo electrónico instala los datos del precio del petróleo recibido en el objeto de instancia del mensaje, y el cliente usa la API de análisis de correo electrónico para analizar los datos de correo electrónico recibidos de este objeto.
Sesión
La clase de sesión se utiliza para definir la información del entorno requerida por toda la aplicación, así como para 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. El objeto de sesión construye objetos de almacenamiento y transporte para enviar y recibir correos basados en esta información de sesión, y proporciona soporte de información para que el cliente cree objetos de mensaje.
Transporte
La clase de transporte es la clase API central para enviar correos. Su objeto de instancia representa el objeto de envío de correo que implementa un cierto protocolo de envío de correo, como el protocolo SMTP. Después de que el programa del cliente crea un objeto de mensaje, solo necesita usar la API de envío de correo electrónico para obtener el objeto de transporte, luego pasar el objeto de mensaje al objeto de transporte y llamar a su método de envío para enviar el correo electrónico al servidor SMTP especificado.
Almacenar
La clase de la tienda es la clase API central para recibir el correo. Su objeto de instancia representa el objeto de recepción de correo que implementa un cierto protocolo de recepción de correo, como los protocolos POP3 e IMAP. Cuando el programa del cliente recibe correo, solo necesita utilizar la API de recepción de correo para obtener el objeto de la tienda, y luego llamar al método receptor del objeto de la tienda para obtener los datos de correo del servidor POP3 especificado y encapsular los datos de correo al objeto de mensaje que representa el correo.
IV. Ejemplos
clase pública javamail_01 {public static void main (string [] args) lanza excepción {Properties props = new Properties (); propsssetProperty ("mail.smtp.auth", "true"); propsssetProperty ("mail.transport.protocol", "smtp"); Sesión session = session.getInstance (Props); session.setDebug (verdadero); Mensaje msg = new Mimemessage (sesión); msg.setsubject ("Este es un programa de prueba ..."); msg.settext ("¡Hola! Este es mi primer programa Javamail ---- Chen Ming"); msg.setFrom (nuevo Internetaddress ("******@163.com")); Transport Transport = session.getTransport (); transport.connect ("smtp.163.com", 25, "*********", "************"); transport.sendMessage (MSG, nueva dirección [] {new InternetAddress ("[email protected]")}); System.out.println ("correo electrónico enviado correctamente ..."); transport.close (); }}