//此main方法,运行正常,邮件正文和附件都可以发送出去,但一旦TOMACT启动,调用这个方法,确出现收件人,标题都是空,正文就是一堆乱码,也看不到有附件。有经验的朋友看看,这是怎么回事啊,急 ,在线等  各位
public  static void main(String[] args) throws Exception {
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();   // 设定 Mail Server
  senderImpl.setHost("mail.eastcom-sw.com");   // SMTP验证时,需要用户名和密码
  senderImpl.setUsername("user");
  senderImpl.setPassword("password");
  // 不设这个是不能用用户名密码通过验证发的
  Properties prop = new Properties();
  prop.setProperty("mail.smtp.host", "true");
  senderImpl.setJavaMailProperties(prop);
  // 建立邮件讯息
  MimeMessage mailMessage = senderImpl.createMimeMessage();
  MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,
    true, "GBK");
  // 设定收件人、寄件人、主题与内文
  messageHelper.setTo("[email protected]");
  messageHelper.setFrom("[email protected]");
  messageHelper.setSubject("技术之旅(zh):SpringMail+AttachFile.toU");
  messageHelper.setText("<html><head></head><body><h1>你的春天到了吗?"
    + "</h1></body></html>", true);
  // 发附件,这里附件可以多个,只要再NEW一个FILE,再ADD一次,即可
  File file = new File("d:/aa/text.xls");
  messageHelper.addAttachment(MimeUtility.encodeWord(file.getName()),
    file);
  // 传送邮件
  senderImpl.send(mailMessage);
  System.out.println("is ok");
}

解决方案 »

  1.   

    中文乱码问题:应该说所有的情况都碰到了吧,解决也是曲折的,经过摸索,总结如下: 1、所有页面都用UTF-8。 
    2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 
    3、javascript脚本里用encodeURI(str)。 
    4、适当的时候,在jsp里用java.net.URLDecoder.decode(request.getParameter("str"),"UTF-8")。 
    5、最容易忽略的是使用"":value=" <%=paraFiles%>",一定要有引号。 
    6、new String(content.getBytes("ISO-8859-1"), "GBK");----------------------------------------你编码转成UTF-8 试试