当前位置: 代码迷 >> Java Web开发 >> 问上javamail接收邮件的有关问题~高人指点
  详细解决方案

问上javamail接收邮件的有关问题~高人指点

热度:4250   发布时间:2013-02-25 21:16:49.0
问下javamail接收邮件的问题~高人指点~
现在因为需要用到javamai编写一个可以收发邮件的程序,我网上看了很久,把发邮件差不多搞好了,但是收邮件的时候会有很多的问题,我现在碰到一个满严重的问题,就是如果是中文邮件的话,正文是乱码。主题如果是中午的话,却可以正常显示。我试了编码改成UTF8貌似也没用只是从方块变成了问号。。高人来指点下我吧~以下是我的代码

Java code
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.Properties;import javax.mail.Folder;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.NoSuchProviderException;import javax.mail.Part;import javax.mail.Session;import javax.mail.Store;public class ReceiveEmail {    public static void receive() {        Properties props = new Properties();        //存储接收邮件服务器使用的协议,这里以POP3为例        props.setProperty("mail.store.protocol", "pop3");        //设置接收邮件服务器的地址,这里还是以网易163为例        props.setProperty("mail.pop3.host", "pop3.sina.cn");        //根据属性新建一个邮件会话.        Session session=Session.getInstance(props);                try {            //从会话对象中获得POP3协议的Store对象            Store store = session.getStore("pop3");                        //如果需要查看接收邮件的详细信息,需要设置Debug标志            session.setDebug(false);                        //连接邮件服务器            store.connect("pop3.sina.cn", "用户名", "密码");                        //获取邮件服务器的收件箱            Folder folder = store.getFolder("INBOX");            //以只读权限打开收件箱            folder.open(Folder.READ_ONLY);                        //获取收件箱中的邮件,也可以使用getMessage(int 邮件的编号)来获取具体某一封邮件            Message[] message = folder.getMessages();            for (int i=0; i < message.length; i++) {                Part messPart = message[i];                Object content = message[i].getContent();                messPart = ((Multipart)content).getBodyPart(0);                InputStream   in   =   messPart.getInputStream();                 BufferedReader   reader   =   new   BufferedReader(new   InputStreamReader(in));                 String   str   =   reader.readLine();                                 while (str!=null){                    System.out.println(str);                    str=reader.readLine();                }            }            //关闭连接            folder.close(false);            store.close();        } catch (NoSuchProviderException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (MessagingException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }              }         public static void main(String[] args) {        receive();        System.out.println("ok");    }}


------解决方案--------------------------------------------------------
那就结贴吧。。。
------解决方案--------------------------------------------------------
怎么解决的,可以发上来分享下呀。