Los ejemplos en este artículo comparten el código de implementación específico de la función de envío y recepción de correo electrónico para su referencia. El contenido específico es el siguiente
Trabajo de preparación, construcción del medio ambiente:
1. Construya un servidor de correo localmente
Easymail Server, EyoUmailServersetup.exe
2. Cree una nueva cuenta de correo electrónico
Zhang San envió un correo electrónico a Li Si.
Paso 1:
Cree un nuevo nombre de dominio: herramientas, configuración del servidor, ingrese itcast.com en el cuadro de nombre de dominio único
Paso 2:
Cree una nueva cuenta de correo electrónico: [email protected]
[email protected]
3. Instale Foxmail
Configurar el servidor de envío de correo electrónico (SMTP): localhost 25
Servidor de recepción de correo electrónico (POP3): Localhost 110
¡Crea una nueva cuenta y puedes recibir correos electrónicos!
Aviso
Si es un proyecto web, porque Javaee viene con la función de correo electrónico, ¡puede haber problemas!
¡Necesitamos usar nuestra propia función de archivo mail.jar! ¡Debe eliminar el paquete de correo en Javaee!
usar:
Para el desarrollo de Javamail, primero introduzca archivos JAR:
activación.jar [Si usa JDK1.6 o superior, puede no usar este archivo JAR]
mail.jar [PAQUETE COREME DE ENTRADA DE ELECCIÓN]
/** * 1. Envíe un correo electrónico normal * @author jie.yuan * */public class app_sendmail {@test public void testSend () lanza la excepción {// 0. Propiedades de parámetros de correo Prop = New Properties (); prop.put ("mail.transport.protocol", "smtp"); // especificar el protocolo prop.put ("mail.smtp.host", "localhost"); // host stmp.qq.com prop.put ("mail.smtp.port", 25); // puerto prop.put ("mail.smtp.auth", "true"); // autenticación de contraseña de usuario prop.put ("mail.debug", "true"); // Modo de depuración // 1. Cree una sesión de sesión de sesión de correo electrónico = session.getDefaultInstance (PROP); // 2. Cree un objeto de cuerpo de correo (objeto de correo electrónico completo) MIMEMESSAGE Mensaje = new Mimemessage (sesión); // 3. Establezca los parámetros del cuerpo de correo: //3.1 Message de título. Setsubject ("Mi primer correo electrónico"); //3.2 Mensaje de tiempo de envío de correo. SetsentDate (nueva fecha ()); //3.3 Message del remitente.setsender (nuevo Internetaddress ("[email protected]")); //3.4 Message del destinatario. //3.5 Content Message.setText ("Hola, se ha enviado correctamente! Text ..."); // mensaje de correo electrónico simple de texto sin formato. SaveChanges (); // Guardar correo electrónico (opcional) // 4. Enviar transporte trans = session.getTransport (); trans.connect ("zhangsan", "888"); // Enviar correo electrónico trans.sendMessage (Message, Message.getAllRecipients ()); trans.close (); }}Con fotos
/** * Correo electrónico con recursos de imagen * @author jie.yuan * */public class app_2sendWithimg {// Parámetros de inicialización Propiedades estáticas privadas PROP; // remitente privado static internetaddress sendman = null; static {prop = new Properties (); prop.put ("mail.transport.protocol", "smtp"); // especificar el protocolo prop.put ("mail.smtp.host", "localhost"); // host stmp.qq.com prop.put ("mail.smtp.port", 25); // puerto prop.put ("mail.smtp.auth", "true"); // autenticación de contraseña de usuario prop.put ("mail.debug", "true"); // Modo de depuración prueba {sendman = new InternetAddress ("[email protected]"); } catch (directionException e) {tire new runtimeException (e); }} @Test public void testSend () lanza la excepción {// 1. Cree una sesión de sesión de sesión de correo = session.getDefaultInstance (prop); // 2. Cree un mensaje de mimemessage de objeto de correo = new Mimemessage (sesión); // 3. Establezca parámetros: título, remitente, destinatario, tiempo de envío, contenido Message.setsubject ("Correo con imagen"); Message.setsender (Sendman); Message.setRecipient (destinationType.to, nuevo Internetaddress ("[email protected]")); Message.setsentDate (nueva fecha ()); / ************************* Establecer contenido de correo electrónico: correo electrónico de usuario multifunción (relacionado) *********************** // 4.1 Cree un bloque de correo multifunción Mimemultipart relacionado = nuevo mimemultipart ("relacionado"); // 4.2 Construya el contenido de bloque de correo multifunción = texto en el recurso de imagen izquierdo + en el contenido mimeBodyPart derecho = new MimeBodyPart (); MimeBodyPart Resource = new MimeBodyPart (); // Establecer contenido específico: a. Recurso (imagen) cadena filepath = app_2sendwithimg.class.getResource ("8.jpg"). GetPath (); DataSource ds = new FileDataSource (nuevo archivo (FilePath)); Handler Datahandler = nuevo Datahandler (DS); Resource.SetDatahandler (Handler); Resource.SetContentId ("8.jpg"); // Establecer el nombre del recurso y referencia a la clave extranjera // Establecer el contenido específico: b. Content.setContent de texto ("<img src = 'cid: 8.jpg'/> ok!", "Text/html; charset = utf-8"); Related.AddBodyPart (contenido); Relation.AddBodyPart (recurso); /**********4.3 Agregue los correos electrónicos complejos creados a los correos electrónicos *********/ Message.setContent (relacionado); // 5. Enviar transporte trans = session.getTransport (); trans.connect ("zhangsan", "888"); trans.sendMessage (Message, Message.getAllRecipients ()); trans.close (); }}Imágenes + archivos adjuntos
/** * 3. Correo electrónico con recursos de imagen y archivos adjuntos * @author jie.yuan * */public class app_3imgandatta {// Parámetros de inicialización Propiedades estáticas privadas prop; // remitente privado static internetaddress sendman = null; static {prop = new Properties (); prop.put ("mail.transport.protocol", "smtp"); // especificar el protocolo prop.put ("mail.smtp.host", "localhost"); // host stmp.qq.com prop.put ("mail.smtp.port", 25); // puerto prop.put ("mail.smtp.auth", "true"); // autenticación de contraseña de usuario prop.put ("mail.debug", "true"); // Modo de depuración prueba {sendman = new InternetAddress ("[email protected]"); } catch (directionException e) {tire new runtimeException (e); }} @Test public void testSend () lanza la excepción {// 1. Cree una sesión de sesión de sesión de correo = session.getDefaultInstance (prop); // 2. Cree un mensaje de mimemessage de objeto de correo = new Mimemessage (sesión); // 3. Establezca parámetros: título, remitente, destinatario, tiempo de envío, contenido Message.setsubject ("Correo con imagen"); Message.setsender (Sendman); Message.setRecipient (destinationType.to, nuevo Internetaddress ("[email protected]")); Message.setsentDate (nueva fecha ()); /** Desarrollo de correo con archivos adjuntos (imagen)*/ // Construye un bloque de correo total Mimemultipart Mixed = new Mimemultipart ("Mixed"); // -> El correo total es rápido, configurado en Message.SetContent (mixto); // izquierda: (texto + recurso de imagen) mimeBodyPart Left = new MimeBodyPart (); // a la derecha: adjunto mimeBodyPart Right = new MimeBodyPart (); // establecido en un bloque de correo total mixto. AddBodyPart (izquierda); mixed.addbodypart (derecha); / ******* Adjunto **********/ String attr_path = this.getClass (). GetResource ("a.docx"). GetPath (); DataSource attr_ds = new FileDataSource (nuevo archivo (attr_path)); Datahandler attr_handler = new Datahandler (attr_ds); Right.setDatahandler (attr_handler); right.setFileName ("a.docx"); / ************************** Contenido de correo electrónico: Correo electrónico de usuario multifunción (Relacionado) **********************/ // 4.1 Cree un bloque de correo electrónico multifuncional Mimemultipart Relacionado = nuevo Mimemultipart ("relacionado"); // ---> Establecer en el Left.SetContent (relacionado); // 4.2 Cree el contenido de bloque de correo multifuncional = texto en el recurso de imagen izquierdo + en el contenido mimeBodyPart derecho = new MimeBodyPart (); MimeBodyPart Resource = new MimeBodyPart (); // Establecer contenido específico: a. Recurso (imagen) cadena filepath = app_3imgandatta.class.getresource ("8.jpg"). GetPath (); DataSource ds = new FileDataSource (nuevo archivo (FilePath)); Handler Datahandler = nuevo Datahandler (DS); Resource.SetDatahandler (Handler); Resource.SetContentId ("8.jpg"); // Establecer el nombre del recurso y referencia a la clave extranjera // Establecer el contenido específico: b. Content.setContent de texto ("<img src = 'cid: 8.jpg'/> ok!", "Text/html; charset = utf-8"); Related.AddBodyPart (contenido); Relation.AddBodyPart (recurso); // 5. SendTransport trans = session.getTransport (); trans.connect ("zhangsan", "888"); trans.sendMessage (Message, Message.getAllRecipients ()); trans.close (); }}Lo anterior se trata de este artículo, espero que sea útil para todos aprender la programación de Java.