大牛接招:紧急求救:Qmail的中文问题(200分)

  • 主题发起人 主题发起人 aq100
  • 开始时间 开始时间
A

aq100

Unregistered / Unconfirmed
GUEST, unregistred user!
无法读取邮件的中文内容和中文附件名称!!!
以下是相关的代码,QMAIL是运行在红帽LINUX平台上的,查看过一些相关资料,可能和LINUX平台的编码方式有关,
因为在另外一台LINUX服务器上运行就没有这样的问题,我试过各种编码转换方式,但没能解决问题,比较郁闷,
希望各位大牛能提供点彻底的解决方法,比如安装LINUX时因该注意的几点,或在程序代码中做编码转换处理。
///////////////////////////////////////////////////////////////////////
// 登陆邮件服务器并发送电子邮件 //
///////////////////////////////////////////////////////////////////////
public sendmail() {
MailManager mm = new MailManager();
try{
mm.logOn("sss.com","zhangqi","88888888");
//登陆邮件服务器
File[] files = new File[4];
files[0] = new File("e://content.txt");
//邮件附件
files[1] = new File("e://log.txt");
files[2] = new File("e://readme.txt");
files[3] = new File("e://send.
txt");
mm.sendMessage("zhangqi",null,"邮件标题","邮件中文内容",files);//发送邮件
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
mm.logOff();
}
catch(Exception e){
e.printStackTrace();
}
}
}

///////////////////////////////////////////////////////////////////////
// 发送电子邮件的内容 //
///////////////////////////////////////////////////////////////////////
public void sendMessage(String SendTos,String CCs,String subject,String Messages,File[] Attachments) throws java.io.UnsupportedEncodingException,
javax.mail.internet.AddressException,javax.mail.MessagingException
{
MimeMessage msg = new MimeMessage(session);
msg.setFrom(InternetAddress.parse(userName+"@"+mailServer,false)[0]);
InternetAddress[] address = InternetAddress.parse(SendTos,false);
msg.setRecipients(Message.RecipientType.TO, address);
if (CCs != null){
InternetAddress[] cc = InternetAddress.parse(CCs,false);
msg.setRecipients(Message.RecipientType.CC,cc);
}
msg.setSubject(subject);
// create and fill the first message part
if(Attachments!=null &&
Attachments.length>0){
MimeBodyPart mbp0 = new MimeBodyPart();
mbp0.setText(Messages);
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp0);
// create the second message part
MimeBodyPart mbp[] = new MimeBodyPart[Attachments.length];
for(int i = 0;
i < Attachments.length;
i++){
mbp = new MimeBodyPart();
// attach the file to the message
FileDataSource fds = new FileDataSource(Attachments);
mbp.setDataHandler(new DataHandler(fds));
mbp.setFileName(fds.getName());
// create the Multipart and its parts to it
mp.addBodyPart(mbp);
}
// add the Multipart to the message
msg.setContent(mp);
}
else
{
msg.setText(Messages);
}
// set the Date: header
msg.setSentDate(new Date());
// send the message
Transport.send(msg);
}

///////////////////////////////////////////////////////////////////////
// 获取电子邮件的内容 //
///////////////////////////////////////////////////////////////////////
public String getText() throws MessagingException,java.io.IOException{
String ret = "";
if(!msg.isMimeType("multipart/*"))
ret = (String)msg.getContent();
else
{
Multipart mp = (Multipart)msg.getContent();
for(int i = 0;
i<mp.getCount();
i++){
BodyPart p = mp.getBodyPart(i);
String fileName = p.getFileName();
if(fileName==null){
ret+=(String)p.getContent();
}
}
}
return ret;
}
}
///////////////////////////////////////////////////////////////////////
// 错误提示信息 //
///////////////////////////////////////////////////////////////////////
java.io.UnsupportedEncodingException:gbk
.
.
.
.
.

 
用Web方式显示不正常还是都不正常?
httpd.conf的问题?
加上,defaltchartset gb2312
httpd restart
自己翻一下,记不住
我也是红帽子怎么没有这样的问题列?
重装一下试试吧,伊甸园有qmail套包
 
在jb7下测试时就有这样的问题,放到页面那就更惨啦,在另外一台红帽机器上没有问题,就时
我用的这台比较郁闷,是别人安装的系统,所有我也看不出差别在哪里,不过我的LINUX上的JDK版本
是1.2的
 
刚将JDK的版本升到最新版本,可是问题仍然存在,不知道这里的LINUX高手能不能帮忙看看,
如何设置LINUX下默认的编码方式。
 
到www.linuxforum.net找找,不知道和以下这个问题是不是类似?
http://www.linuxforum.net/forum/showthreaded.php?Cat=&amp;Board=web&amp;Number=404893&amp;page=&amp;view=&amp;sb=&amp;o=
 
我试了一下,问题还是那样,在etc 和user目录中的各有一个httpd.conf
一个httpd.conf是
AddDefaultCharset ISO-8859-1
另一个httpd.conf是
AddDefaultCharset gb2132
我把两个文件都改成了
#AddDefaultCharset 然后重起了机器
问题还是没有解决,真是极其郁闷
 
目前问题已经有了一定的进长,服务器平台的问题已经排除,希望下面的工作顺利
 
请问LINUX8以上的版本与它以前的旧版本有什么区别
 
我来了,这个问题帮不了你
 
没关系,这里得问题我也解决了,只是money没法分,所以一直没有结束这个帖子,谢谢你得帮助,不知道你看过书生公司得一个电子公文软件,一台机器就要3万,厉害吧,好了,发工资吧。
 
后退
顶部