Obviamente, fue exitoso al enviar correos electrónicos con 163 buzón antes, pero al usar el propio buzón de China Mobile, no tuvo éxito en enviarlos en el servidor de Linux de todos modos. El siguiente error se informó al principio:
javax.mail.MessagingException: desconocido SMTP Host: mail.chinamobilesz.com en com.sun.mail.smtp.smtptransport.openserver (smtptransport.java:1959) ~ [mail-1.4.7.jar: 1.4.7] a com.sun.mail.smtp.smtptransport.protocolconnect (smtptransport.java:65 4) ~ [mail-1.4.7.jar: 1.4.7] en javax.mail.service.connect (servicio.java:317) ~ [mail-1.4.7.jar: 1.4.7] en javax.mail.service.connect (servicio.java:176) ~ [mail-1.4.7.jar: 1.4.7] en javax.mail.service.connect (servicio.java:125) ~ [mail-1.7.jar: 1.4.7] en javax.mail.transport.send0 (transport.Java:194) ~ [Mail-1.4.7.Jar: 1.4.7] en javax.mail.transport.send (transport.java:124) ~ [mail-1.4.7.jar: 1.4.7] en com.cmsz.processom.service.Impl.EmailsendeViceMassImpl.sendemail (correos electrónicos (emails terminalserviceImpl.Java:107) en com.cmsz.processom.controller.workOrderController $ sendemail.issendema il (WorkOrderController.Java:555) [WorkOrderController $ sendemail.class: na] en com.cmsz.processom.controller.workOrderController $ sendemail.run (worko rdERTrontroller.JAVA:524) [WorkOrderController $ sendemail.class: na] en java.lang.thread.run (Thread.java:745) [Na: 1.7.0.11] ......
Telnet Mail.chinamobilesz.com 25 no funciona en Linux, pero puede cambiar Mail.chinamobilesz.com a IP. Después de buscar información en línea y referirse a otros artículos, configurar la asignación del nombre del host y la IP, finalmente Telnet se conecta correctamente:
Sin embargo, aunque Telnet se conectó con éxito, todavía informó un error al enviar el correo electrónico después de comenzar el proyecto, pero fue solo un cambio:
javax.mail.MessagingException: no se pudo conectar al host SMTP: mail.chinamobilesz.com, puerto: 25 en com.sun.mail.smtp.smtptransport.openserver (smtptransport.java:1961) ~ [correo -.4.7.Jar: 1.4.7] AT com.sun.mail.smtp.smtptransport.protocolconnect (smtptransport.java:654) ~ [mail-1.4.7.jar: 1.4.7] en javax.mail.service.connect (servicio.java:317) ~ [mail-1.4.7.jar: 1.4.7] en javax.mail.service.connect (servicio.java:176) ~ [mail-1.4.7.jar: 1.4.7] en javax.mail.service.connect (servicio.java:125) ~ [mail-1.7.jar: 1.4.7] en javax.mail.transport.send0 (transport.Java:194) ~ [Mail-1.4.7.Jar: 1.4.7] en javax.mail.transport.send (transport.java:124) ~ [mail-1.4.7.jar: 1.4.7] en com.cmsz.processom.service.Impl.EmailsendeSendiceImessImplassilserSerSEnderSendiceImpl.Java.107) en com.cmsz.processom.controller.workOrderController $ sendemail.issendemail (WorkOrderController.java:555) [WorkOrderController $ sendEmail.class: na] en com.cmsz.processom.controller.workOrderController $ sendEmail.run (WorkOrderController.Java:5244) [WorkOrderController $ sendemail.class: na] en java.lang.thread.run (Thread.java:745) [Na: 1.7.0.11] ......
Busqué mucha información, pero aún no pude resolver el problema. No entiendo por qué no puedo conectarme al programa, incluso si no puedo. Después de mucho tiempo de lucha, el líder del equipo finalmente resolvió el problema, y finalmente entendí la razón. Resultó que se causó el siguiente código en el proyecto:
// Cifrado SSL MailsSlSocketFactory SF = NULL; intente {sf = new MailsSlSocketFactory (); // establecer confianza en todos los hosts sf.setTrustallHosts (verdadero); propers.put ("mail.smtp.ssl.enable", "verdadero"); Proers.put ("mail.smtp.ssl.socketfactory", sf); } Catch (GeneralSecurityException e) {E.PrintStackTrace (); }Después de usar este código, la conexión es el puerto 465, no 25, pero de hecho, la dirección de correo electrónico proporcionada no abrió el puerto 465, por lo que es imposible conectarse al puerto 465 o el puerto 25. Por lo tanto, después de eliminar este código, el proyecto de inicio enviará el correo electrónico nuevamente y con éxito.
Lo anterior es la descripción completa de las trampas encontradas cuando Java implementa la función de correo electrónico que le he presentado. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!