CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

高分,再求用javamail发邮件时主题出现乱码的问题 ,问题解决马上揭帖

楼主weichenggao(一万年太久,只争朝夕)2003-12-03 13:57:45 在 Java / Web 开发 提问

在网上看过很多介绍发邮件出现乱码的解决办法,主要就是sun.misc.BASE64Encoder   enc   =   new   sun.misc.BASE64Encoder();    
    msg.setSubject("=?GB2312?B?"+enc.encode(subject.getBytes())+"?=");    
  为什么我用这种方法还是不可以呢?希望高手和处理过类似问题的朋友帮忙看看,谢谢拉  
   
  我开一个链接,大家可以直接在这里测试,运行  
  erp-deve.smartdotweb.com/testmail/sendmail3.jsp  
   
  谢谢大家拉,问题解决,马上揭帖!  
  问题点数:100、回复次数:9Top

1 楼weichenggao(一万年太久,只争朝夕)回复于 2003-12-03 14:03:44 得分 0

提交后的页面,谢谢大家拉  
   
  String   host="smtp.smartdotweb.com";  
      String   to=request.getParameter("to");  
      StringTokenizer   ST   =   new   StringTokenizer(to,";");  
      String   from=request.getParameter("from");  
      String   subject=request.getParameter("subject");  
   
      String   body=strrequest(request.getParameter("body"));  
      boolean   sessionDebug=false;  
   
    java.util.Properties   props=System.getProperties();  
    props.put("smtp.smartdotweb.com",host);  
    props.put("你的STMP伺服器?","smtp.smartdotweb.com");  
    props.put("mail.smtp.auth","true");  
   
    Session   mailSession=Session.getDefaultInstance(props,null);  
    Message   msg=new   MimeMessage(mailSession);  
    msg.setFrom(new   InternetAddress(from));  
  while(ST.hasMoreTokens())   {  
    InternetAddress[]   address={   new   InternetAddress(ST.nextToken())};  
    msg.setRecipients(Message.RecipientType.TO,address);  
     
    sun.misc.BASE64Encoder   enc   =   new   sun.misc.BASE64Encoder();    
    msg.setSubject("=?GB2312?B?"+enc.encode(subject.getBytes())+"?=");    
   
    //msg.setSubject(subject);  
    msg.setSentDate(new   java.util.Date());  
   
   
    msg.setContent(body.toString(),"text/html;charset=gb2312");  
    mailSession.setDebug(sessionDebug);  
            Transport   transport   =   mailSession.getTransport("smtp");  
            transport.connect((String)props.get("smtp.smartdotweb.com"),"weicheng.gao@smartdotweb.com","we4ga3");  
    transport.sendMessage(msg,msg.getRecipients(Message.RecipientType.TO));  
   
            System.out.println("郵件發送成功");  
            transport.close();  
  }Top

2 楼weichenggao(一万年太久,只争朝夕)回复于 2003-12-03 15:07:08 得分 0

那位路过的好心人给看看,谢谢拉!!  
  Top

3 楼sunshadow1981(影子)回复于 2003-12-03 17:18:50 得分 20

哈哈,我看了,看不明白Top

4 楼weichenggao(一万年太久,只争朝夕)回复于 2003-12-03 17:56:26 得分 0

顶一下!  
  Top

5 楼blueice2002(蓝冰)回复于 2003-12-03 17:58:32 得分 0

up一下,不明白Top

6 楼weichenggao(一万年太久,只争朝夕)回复于 2003-12-04 09:51:01 得分 0

请各位高手指点一下!  
  Top

7 楼popyuan821(无)回复于 2003-12-04 10:18:14 得分 10

我就是用了网上的方法,主题乱码就解决了!你可能是其他的地方写的有问题了Top

8 楼Acylas(Acylas)回复于 2003-12-04 10:28:09 得分 20

msg.setSubject("=?GB2312?B?"+enc.encode(subject.getBytes())+"?=");    
  "=?GB2312?B?"+?  
  怎么有这几个东西的,有问号,你发之前已经是乱码的数据Top

9 楼Acylas(Acylas)回复于 2003-12-04 11:15:25 得分 50

我给个方法你看看吧  
  private   String   sendEmail(String   strHost,   String   strProtocol,   String   strMailTo,   String   strMailFrom,   String   strTitle,   String   strSubTitle,   String   strBody){  
                  try   {  
                          Properties   props   =   System.getProperties();  
                          props.put("mail.host",strHost);  
                          props.put("mail.transport.protocol",   strProtocol);  
                          if   (props.getProperty("user.region")   !=   null   &&   props.getProperty("user.region").equals("TW")  
                                          &&   props.getProperty("user.language")   !=   null   &&   props.getProperty("user.language").equals("zh")){                                         props.setProperty("file.encoding","BIG5");  
                                  }  
                          }  
                          session   =   javax.mail.Session.getDefaultInstance(props,   null);  
                          session.setDebug(false);  
                          msg   =   new   javax.mail.internet.MimeMessage(session);  
                          msg.setSubject(strTitle);  
                          msg.setSentDate(new   Date());  
                          msg.setText(strBody);  
                          msg.setFrom(new   javax.mail.internet.InternetAddress(strMailFrom));  
                          javax.mail.internet.InternetAddress[]   address   =   {new   javax.mail.internet.InternetAddress(strMailTo)};  
                          javax.mail.Transport.send(msg,   address);  
                          return   "successfully";  
                  }catch(Exception   e){e.printStackTrace();return   e.getMessage();}  
          }Top

相关问题

  • 解决就马上揭帖!
  • datagrid的DropDownList模板列?马上揭帖
  • 关于FindChildControl方法,马上揭帖!!!!
  • 求一sql语句(oracle)马上揭帖
  • 在线等待,马上揭帖!!关于数据导出问题!
  • 变量类型的问题!在线~~~~~~~~~~~马上揭帖~~~~~~~~~~~
  • 帮忙看一下脚本!!~~~~在线!!马上揭帖!!~
  • 郁闷,极度郁闷,散分200,马上揭帖!
  • 字符转换问题 一句话解决,马上揭帖!
  • 小问题,路过帮看一下,马上揭帖!!

关键词

  • 乱码
  • 解决
  • sun
  • null
  • smartdotweb
  • props
  • setsubject
  • getproperty
  • enc
  • 问题

得分解答快速导航

  • 帖主:weichenggao
  • sunshadow1981
  • popyuan821
  • Acylas
  • Acylas

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo