写了个邮件发送程序,在WINDOWS下调试发送没有问题,但放到LINUX服务器上就发送不了了,也没什么错误信息,请问是怎么回事呢?WEB服务器都是用的TOMCAT,LINUX服务器上我已经在环境变量中加入mail.jar和activation.jar了,代码如下:
package com.teachade.tools;import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;public class JavaMail { /**
 * 
 * @param hostName主机名smtp主机
 * @param fromAdd发送的邮件地。
 * @param toAdd送到的邮件地
 * @param title标题
 * @param context内容
 * @param userName用户名
 * @param passWord密码
 * 
 */
public static void senMail(String hostName, String fromAdd, String toAdd,String title, String context, String userName, String passWord) {

try {
            Properties props = new Properties();
props.put("mail.smtp.host", hostName);// 设置smtp主机
props.put("mail.smtp.auth", "true");// 使用smtp身份验证
Session session = Session.getDefaultInstance(props, null);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(fromAdd));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(toAdd));
message.setSubject(title);// 標題
message.setText(context);// 郵件內容
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(hostName, userName, passWord);// 用戶名密碼
transport.sendMessage(message, message.getAllRecipients());
            System.out.println("发送完成");
} catch (MessagingException e) {
e.printStackTrace();

}
}
}

解决方案 »

  1.   

    在linux下看看日志,有什么问题没有???
      

  2.   

    tomcat日志我看了,没有错误信息
      

  3.   

    我发现问题了,在LINUX服务器上用/etc/init.d/iptables stop把防火墙关了就能发送出去了,但现在我们的局域网也是通过这台LINUX服务器上网的,把防火墙关了我们就上不了网了,请问是怎么回事?
      

  4.   

    我已经用iptables -A INPUT -p tcp --destination-port 25 -j ACCEPT开放25端口了,但还是不行
      

  5.   

    发邮件要有邮件服务器的,linux上自带的有相当于邮件服务器的组件
    你也可以自己找一个linux下的邮件服务器