我用Java做了java web email,可是在读取邮件的时候出现下面这个问题,
DEBUG POP3: server doesn't support TOP, disabling it
请教高手?

解决方案 »

  1.   

    public static void readEmail(String filePath) {
    /*
     * 链接邮箱
     */
    String emailUserName = "**@**.com";
    String userPassword = "******"; Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
    Properties props = System.getProperties();
    props.setProperty("mail.pop3.socketFactory.fallback", "false");
    props.setProperty("mail.pop3.port", "25");
    props.setProperty("mail.pop3.socketFactory.port", "25"); props.setProperty("mail.imap.socketFactory.fallback", "false");
    props.setProperty("mail.imap.port", "143");
    props.setProperty("mail.imap.socketFactory.port", "143"); Session session = Session.getDefaultInstance(props, null); URLName urln = new URLName("imap", "mail.mingoe.com", 143, null, emailUserName, userPassword);
    Store store;
    try {
    store = session.getStore(urln);
    store.connect(); /*
     * 读取邮件
     */
    Folder inbox = store.getFolder("Inbox");
    inbox.open(Folder.READ_WRITE);
    FetchProfile profile = new FetchProfile();
    profile.add(FetchProfile.Item.ENVELOPE); if (inbox.getMessageCount() > 0) {
    Message[] messages = inbox.getMessages();
    String imgPath = null;

    HibernateFaceImple hibernateFaceImple = HibernateFaceFactory.getHibernateFace();
    for (int i = 0; i < messages.length; i++) {
    imgPath = PHONE_DIR + "\\";

    MimeMessage mimeMessageTemp = (MimeMessage)messages[i];
    MimeMessage mimeMessage = new MimeMessage(mimeMessageTemp);

    try {
    if (mimeMessage.getContentType().indexOf("multipart/mixed") != -1) {
    Address[] addresses = mimeMessage.getFrom();
    Address address = addresses[0];
    String fileName = getEmailName(address.toString());
    String strFileName = filePath  + fileName + "_" + new Date().getTime() + ".jpg";
    imgPath = imgPath + fileName + "_" + new Date().getTime() + ".jpg"; List<?> userNames = UserFaceImple.getInstance().getUserNames(hibernateFaceImple,
    fileName, Constants.EmailState_Actived);
    if (userNames == null || userNames.size() == 0) {
     continue;
    } MimeMultipart mm = (MimeMultipart)mimeMessage.getContent();
    BodyPart bp = mm.getBodyPart(1);
    BASE64DecoderStream stream64 = (BASE64DecoderStream)bp.getContent();
    byte[] fileByte = new byte[1024];
    stream64.read(fileByte);

    InputStream in = bp.getInputStream();
    FileOutputStream out = new FileOutputStream(strFileName);
    int data;
    while ((data = in.read()) != -1) {
    out.write(data);
    }
    in.close();
    out.close();

    Transaction transaction = hibernateFaceImple.openTransaction(); }
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    inbox.close(true);
    } else {
    throw new RuntimeException("No any new mail!");
    } } catch (Exception e) {
    e.printStackTrace();
    } }
      

  2.   

    public static void readEmail(String filePath) {
    /*
    * 链接邮箱
    */
    String emailUserName = "**@**.com";//邮箱地址
    String userPassword = "******";//邮箱密码Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
    Properties props = System.getProperties();
    props.setProperty("mail.pop3.socketFactory.fallback", "false");
    props.setProperty("mail.pop3.port", "25");
    props.setProperty("mail.pop3.socketFactory.port", "25");props.setProperty("mail.imap.socketFactory.fallback", "false");
    props.setProperty("mail.imap.port", "143");
    props.setProperty("mail.imap.socketFactory.port", "143");Session session = Session.getDefaultInstance(props, null);URLName urln = new URLName("imap", "mail.mingoe.com", 143, null, emailUserName, userPassword);
    Store store;
    try {
    store = session.getStore(urln);
    store.connect();/*
    * 读取邮件
    */
    Folder inbox = store.getFolder("Inbox");
    inbox.open(Folder.READ_WRITE);
    FetchProfile profile = new FetchProfile();
    profile.add(FetchProfile.Item.ENVELOPE);if (inbox.getMessageCount() > 0) {
    Message[] messages = inbox.getMessages();
    String imgPath = null;HibernateFaceImple hibernateFaceImple = HibernateFaceFactory.getHibernateFace();
    for (int i = 0; i < messages.length; i++) {
    imgPath = PHONE_DIR + "\\";MimeMessage mimeMessageTemp = (MimeMessage)messages[i];
    MimeMessage mimeMessage = new MimeMessage(mimeMessageTemp);try {
    if (mimeMessage.getContentType().indexOf("multipart/mixed") != -1) {
    Address[] addresses = mimeMessage.getFrom();
    Address address = addresses[0];
    String fileName = getEmailName(address.toString());
    String strFileName = filePath + fileName + "_" + new Date().getTime() + ".jpg";
    imgPath = imgPath + fileName + "_" + new Date().getTime() + ".jpg";List<?> userNames = UserFaceImple.getInstance().getUserNames(hibernateFaceImple,
    fileName, Constants.EmailState_Actived);
    if (userNames == null || userNames.size() == 0) {
    continue;
    }MimeMultipart mm = (MimeMultipart)mimeMessage.getContent();
    BodyPart bp = mm.getBodyPart(1);
    BASE64DecoderStream stream64 = (BASE64DecoderStream)bp.getContent();
    byte[] fileByte = new byte[1024];
    stream64.read(fileByte);InputStream in = bp.getInputStream();
    FileOutputStream out = new FileOutputStream(strFileName);
    int data;
    while ((data = in.read()) != -1) {
    out.write(data);
    }
    in.close();
    out.close();Transaction transaction = hibernateFaceImple.openTransaction();}
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    inbox.close(true);
    } else {
    throw new RuntimeException("No any new mail!");
    }} catch (Exception e) {
    e.printStackTrace();
    }}