Java가 메일 발송 기능을 실행할 때 부딪히는 구덩이
javax.mail.MessagingException: Unknown SMTP host: mail.chinamobilesz.com
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1959) ~ [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.jar:1.4.7]
at javax.mail.Transport.send0(Transport.java:194) ~[mail-1.4.7.jar:1.4.7 ]
at javax.mail.Transport.send(Transport.java:124) ~[mail-1.4.7.jar:1.4.7]
at com.cmsz.processOm.service.impl.EmailSendServiceImpl.sendEmail(EmailS endServiceImpl.java:107) ~[EmailSendServiceImpl.class:na]
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:524) [WorkOrderController$SendEmail.class:na]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0.11]
......
linux에서telnetmail.chinamobilesz.com25도 안 통하지만 메일을 바로.chinamobilesz.com을 ip로 바꾸면 됩니다. 인터넷에서 자료를 찾고 다른 글을 참고한 후 호스트 이름과 ip의 맵을 설정한 후 드디어 텔넷이 연결됩니다.그러나 텔넷이 성공적으로 연결되었음에도 불구하고 프로젝트를 시작한 후에 메일을 보낸 것은 여전히 오류를 보고했고 단지 오류를 바꿨을 뿐이다.
javax.mail.MessagingException: Could not connect to SMTP host: mail.chinamobilesz.com, port: 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.jar:1.4.7]
at javax.mail.Transport.send0(Transport.java:194) ~[mail-1.4.7.jar:1.4.7]
at javax.mail.Transport.send(Transport.java:124) ~[mail-1.4.7.jar:1.4.7]
at com.cmsz.processOm.service.impl.EmailSendServiceImpl.sendEmail(EmailSendServiceImpl.java:107) ~[EmailSendServiceImpl.class:na]
at com.cmsz.processOm.controller.WorkOrderController$SendEmail.isSendEmail(WorkOrderController.java:555) [WorkOrderController$SendEmail.class:na]
at com.cmsz.processOm.controller.WorkOrderController$SendEmail.run(WorkOrderController.java:524) [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);
proerties.put("mail.smtp.ssl.enable", "true");
proerties.put("mail.smtp.ssl.socketFactory", sf);
} catch (GeneralSecurityException e) {
e.printStackTrace();
}
이 코드를 사용한 후에 연결된 것은 465 포트입니다. 25가 아닙니다. 그러나 실제로 이동이 제공한 메일박스는 465라는 포트를 열지 않았기 때문에 465든 25 포트가 연결되지 않습니다. 그래서 이 코드를 제거한 후에 프로젝트를 시작하여 다시 메일을 보내는 데 성공했습니다.위에서 말한 것은 여러분이 소개한 자바가 메일 발송 기능을 실현할 때 부딪히는 구덩이에 대한 모든 서술입니다. 여러분께 도움이 되었으면 합니다. 만약에 궁금한 것이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 여러분에게 답장을 드리겠습니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.