Очевидно, что при отправке электронных писем с 163 почтовым ящиком было успешным, но при использовании собственного почтового ящика China Mobile он в любом случае не удалось отправлять их на сервере Linux. Сначала сообщалась о следующей ошибке:
javax.mail.messagingException: неизвестный хост SMTP: mail.chinamobilesz.com на com.sun.mail.smtp.smtptransport.openserver (smtptransport.java:1959) ~ [mail-1.4.7.jar: 1.4.7] com.sun.mail.smtp.smtptransport.protocolconnect (smtptransport.java:65 4) ~ [mail-1.4.7.jar: 1.4.7] на javax.mail.service.conct (service.java:317) ~ javax.mail.service.connect (service.java:176) ~ [mail-1.4.7.jar: 1.4.7] на javax.mail.service.connect (Service.java:125) ~ [mail-1.4.7.jar: 1.4.7] на javax.mail.transport.send0. ~ [mail -1.4.7.jar: 1.4.7] на javax.mail.transport.send (Transport.java:124) ~ [mail -1.4.7.jar: 1.4.7] на com.cmsz.processom.service.impl.emailsenderserviceimpl.sendemail (edlessersimplemplempl. at com.cmsz.processom.controller.workordercontroller $ sendemail.issendema il (workordercontroller.java:555) [WorkorderController $ sendemail.class: na] на com.cmsz.processom.controller.workordercontroler $ sendemail.run (orabrocontroller.jj.javoRoller.jjav.JjavoRollr [WorkorderController $ sendemail.class: na] на 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 на com.sun.mail.smtp.smtptransport.openserver (smtptransport.java:1961) ~ [mail -14.7.jar: 1.4.7] у com.sun.mail.smtp.smtptransport.protocolconnect (smtptransport.java:654) ~ [mail-1.4.7.jar: 1.4.7] на javax.mail.service.conct (service.java:317) ~ javax.mail.service.connect (service.java:176) ~ [mail-1.4.7.jar: 1.4.7] на javax.mail.service.connect (Service.java:125) ~ [mail-1.4.7.jar: 1.4.7] на javax.mail.transport.send0. ~ [mail-1.4.7.jar: 1.4.7] на javax.mail.transport.send (Transport.java:124) ~ [mail -1.4.7.jar: 1.4.7] на com.cmsz.processom.service.impl.emailsenderserviceimpl.sendemail (electiceSendserviceimpl. at com.cmsz.processom.controller.workordercontroller $ sendemail.issendemail (WorkRoderController.java:555) [WorkRoderController $ sendemail.class: Na] на com.cmsz.processom.controller.workorderController $ sendemail.run (rabordercontroller.javaavaavaavaavaavaler. [WorkorderController $ sendemail.class: na] на java.lang.thread.run (Thread.java:745) [NA: 1.7.0.11] ......
Я искал много информации, но все еще не мог решить проблему. Я не понимаю, почему я не могу подключиться к программе, даже если я не могу. После долгого времени борьбы лидер команды наконец решил проблему, и я наконец понял причину. Оказалось, что следующий код в проекте был вызван:
// SSL шифрование MailsslSocketCastery sf = null; try {sf = new MailsslSocketFactory (); // Установить доверие всех хостов sf.settrustalhosts (true); proers.put ("mail.smtp.ssl.enable", "true"); proers.put ("mail.smtp.ssl.socketfactory", sf); } catch (GeneralSecurityException e) {e.printStackTrace (); }После использования этого кода соединение - порт 465, а не 25, но на самом деле указанный мне адрес электронной почты не открыл порт 465, поэтому невозможно подключиться к порту 465 или порту 25. Таким образом, после удаления этого кода проект запуска снова и успешно отправит электронное письмо.
Выше приведено полное описание ловушек, встречающихся, когда Java реализует функцию электронной почты, которую я представил вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!