用Spring封装的javaMail做了个邮件发送程序,
发送邮件是Google的gmail,也就是说发送服务器是smtp.gmail.com
接收邮件是hotmail的
Spring的配置是:<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
  <property name="protocol" value="smtp"/>
  <property name="host" value="smtp.gmail.com"/>
   <property name="port" value="465" />
  <property name="username" value="邮箱名@gmail.com"/>
  <property name="password" value="密码"/>
  <property name="javaMailProperties">
  <props>
  <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.starttls.enable">true</prop>
                <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
  </props>
  </property>
  </bean>
现在在两个机器上测试,分别是我的本机与租用的服务器。
两个机器上都配了同样的jre1.6、javamail1.4、spring2.5、tomcat6。然而在本机上发送成功,hotmail收件箱中收到了邮件,但在租用的服务器里发送时就出现这种异常:

javax.mail.MessagingException: Unknown SMTP host: smtp.gmail.com;
Caused by: java.net.UnknownHostException: smtp.gmail.com
这是什么原因?
有没有可能是租用的服务器有防火墙拦截了?如果是这种可能性,应该如何处理?
谢谢各位!

解决方案 »

  1.   

    应该只是你服务器无法解析smtp.gmail.com(可以是没有设置DNS??),你可以修改为固定的IP地址
      

  2.   

    smtp.gmail.com是在google的服务器里,我们如何设置DNS?google没有公布gmail服务器的IP地址啊
    我本机是采用adsl上网,却可以成功发送。
      

  3.   

    你的服务器需要先设置DNS服务器地址才可以正确的解析域名啊,你用ADSL上网后ipconfig /all就可以看到DNS服务器的地址了现在你要先确定在服务器当中ping smtp.gmail.com或者其它一些www.163.com之类的是否可以。必须正确解析域名才可以发送邮件的
      

  4.   

    不太懂这个javamail呢,不过最近做项目要用到呢,不知道从什么地方开始学习
      

  5.   


    感谢chdw:
    果然是租用的服务器不能访问外网所致