0

繰り返しの質問で申し訳ありません。

しかし、私はこのエラーがどのように発生するのか理解していません...メールを送信しているとき(Hotmailを使用)

私のサンプルコードを聞いてください..

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="smtp.live.com" />
    <property name="port" value="587" />
    <property name="username" value="narasimham@sitsonline.com" />
    <property name="password" value="**********" />

    <property name="javaMailProperties">
        <props>
            <prop key="mail.smtp.auth">true</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
        </props>
    </property>
</bean>

しかし、私はこの例外を得ました..

 org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Unknown SMTP host: smtp.live.com;
  nested exception is:
    java.net.UnknownHostException: smtp.live.com. Failed messages: javax.mail.MessagingException: Unknown SMTP host: smtp.live.com;
  nested exception is:
    java.net.UnknownHostException: smtp.live.com; message exception details (1) are:
Failed message 1:
javax.mail.MessagingException: Unknown SMTP host: smtp.live.com;
  nested exception is:
    java.net.UnknownHostException: smtp.live.com
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1280)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.flex.core.MessageInterceptionAdvice.invoke(MessageInterceptionAdvice.java:66)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.adapter.ThrowsAdviceInterceptor.invoke(ThrowsAdviceInterceptor.java:124)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.Cglib2AopProxy$FixedChainStaticTargetInterceptor.intercept(Cglib2AopProxy.java:573)
    at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCGLIB$$ace25600.serviceMessage(<generated>)
    at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:103)
    at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCGLIB$$ace25600.service(<generated>)
    at org.springframework.flex.servlet.MessageBrokerHandlerAdapter.handle(MessageBrokerHandlerAdapter.java:109)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.net.UnknownHostException: smtp.live.com
4

3 に答える 3

3

これは少し奇妙です。例外は、smtp.live.com の DNS ルックアップが失敗したことを示しています。それでも、「smtp.live.com」を検索すると、次のようになりました。

$ nslookup smtp.live.com
Server:     10.0.0.138
Address:    10.0.0.138#53

Non-authoritative answer:
smtp.live.com   canonical name = smtp.hot.glbdns.microsoft.com.
Name:   smtp.hot.glbdns.microsoft.com
Address: 65.55.162.200

そのため、一時的またはローカルの DNS が停止しているか、DNS 構成に問題があると思われます。また、DNS エントリが取り消されている可能性もあります...そして、上流の DNS キャッシュが私の期限より前に期限切れになっている可能性があります。

ご自身で DNS ルックアップを実行してみて、報告される内容をお知らせください。それが失敗した場合は、「live.com」/hotmail/それ自体が何と呼んでいても、より最新の SMTP ホストを探すことをお勧めします。

于 2013-02-13T08:33:12.417 に答える
1

smtp.live.comおそらく時代遅れです。live.com の MX レコードは、mx4.hotmail.com を介して mx1.hotmail.com を指しています。それらのいずれかを試してください。

于 2013-02-13T08:30:11.550 に答える
0

smtp.live.com が動作するはずです。ほとんどの場合、インターネットへの直接アクセスを防止する企業ファイアウォールの内側にいるため、名前を調べることができません。JavaMail FAQ には、接続の問題をデバッグするためのヒントがあります

于 2013-02-13T20:09:19.830 に答える