이전에 163 사서함이있는 이메일을 보낼 때 성공했지만 China Mobile의 자체 사서함을 사용할 때는 Linux 서버에서 성공하지 못했습니다. 다음 오류는 처음에보고되었습니다.
javax.mail.messagingException : 알 수없는 SMTP 호스트 : mail.chinamobilesz.com (com.sun.mail.smtp.smtptransport.openserver) ~ [mail-1.4.7.jar : 1.4.7] at com.sun.mail.smtp.smtptransport.protocolconnect (smtptransport.java:65 4) ~ [mail-1.4.7.jar : 1.4.7] at javax.mail.service.connect (service.java:317) ~ [Mail-1.4.7.jar : 1.4.7] at javax.mail.service.connect (service.java:176) ~ [mail-1.4.7.jar : 1.4.7] at javax.mail.service.connect (service.java:125) ~ [Mail-1.4.7] at javax.mail.transport.send0 (Transport.java:194). ~ [Mail-1.4.7.jar : 1.4.7] at javax.mail.transport.send (ranstall.java:124) ~ [mail-1.4.7.jar : 1.4.7] at com.cmsz.processom.service.impl.emailsendserviceimpl.sendemail (endserviceimpl.java:1107) ~ 107). at com.cmsz.processom.controller.workorderController $ sendemail.issendema il (WorkorderController.java:555) [WorkOrderController $ sendemail.class : na] at com.cmsz.processom.controller.workordercontroller $ sendemail.run (worko rdercontroller.java:5224). [WorkOrderController $ sendemail.class : na] at java.lang.thread.run (Thread.java:745) [NA : 1.7.0.11] ......
Telnet Mail.chinamobilesz.com 25는 Linux에서 작동하지 않지만 Mail.chinamobilesz.com을 IP로 변경할 수 있습니다. 온라인으로 정보를 검색하고 다른 기사를 참조한 후 호스트 이름 및 IP의 매핑을 설정 한 후 Telnet은 다음과 같습니다.
그러나 Telnet은 성공적으로 연결되었지만 프로젝트를 시작한 후 이메일을 보낼 때 오류를보고했지만 변경 사항이었습니다.
javax.mail.messagingException : smtp 호스트에 연결할 수 없습니다 : mail.chinamobilesz.com, 포트 : 25 at com.sun.mail.smtp.smtptransport.openserver (smtptransport.java:1961) ~ [mail-1.4.7.jar : 1.4.7] at com.sun.mail.smtp.smtptransport.protocolconnect (smtptransport.java:654) ~ [mail-1.4.7.jar : 1.4.7] at javax.mail.service.connect (service.java:317) ~ [Mail-1.4.7.jar : 1.4.7] at javax.mail.service.connect (service.java:176) ~ [mail-1.4.7.jar : 1.4.7] at javax.mail.service.connect (service.java:125) ~ [Mail-1.4.7] at javax.mail.transport.send0 (Transport.java:194). ~ [Mail-1.4.7.jar : 1.4.7] at javax.mail.transport.send (ranstall.java:124) ~ [mail-1.4.7.jar : 1.4.7] at com.cmsz.processom.service.impl.emailsendserviceimpl.sendemail (emailsendserviceimpl.java : navelserviceimpl.java:107) ~ 107). at com.cmsz.processom.controller.workorderController $ sendemail.issendemail (WorkorderController.java:555) [com.cmsz.processom.controller.workordercontroller $ sendemail.run (Workordercontroller.java:524)의 com.cmsz.processom. [WorkOrderController $ sendemail.class : na] at java.lang.thread.run (Thread.java:745) [NA : 1.7.0.11] ......
많은 정보를 검색했지만 여전히 문제를 해결할 수 없었습니다. 내가 할 수 없더라도 왜 프로그램에 연결할 수 없는지 이해가 안 돼요. 오랜 시간이 지남에 따라 팀 리더는 마침내 문제를 해결했으며 마침내 그 이유를 이해했습니다. 프로젝트의 다음 코드가 발생한 것으로 나타났습니다.
// SSL 암호화 mailsslsocketfactory sf = null; try {sf = new MailsSlSocketFactory (); // 모든 호스트 신뢰 세트 sf.settrustallhosts (true); proers.put ( "mail.smtp.ssl.enable", "true"); proers.put ( "mail.smtp.ssl.socketfactory", sf); } catch (GeneralsEcurityException e) {e.printstacktrace (); }이 코드를 사용한 후 연결은 25가 아닌 포트 465이지만 실제로 제공되는 이메일 주소는 465 포트를 열지 않았으므로 포트 465 또는 포트 25에 연결하는 것은 불가능합니다. 따라서이 코드를 제거한 후 시작 프로젝트는 이메일을 다시 보내고 성공적으로 전송합니다.
위는 Java가 내가 소개 한 이메일 기능을 구현할 때 발생하는 함정에 대한 전체 설명입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!