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
.
.
.
.
.
以下是相关的代码,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
.
.
.
.
.