<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    afunms

    My Software,My Dream—Forge a more perfect NMS product.

    java email

    package afu.mymail;

    import java.io.*;
    import javax.mail.internet.*;
    import javax.mail.*;
    import java.util.*;

    public class RecieveMail
    {
        
    public RecieveMail()
        
    {
        }


        
    public void getMails(final String targetFolder) throws Exception
        
    {
            Properties props 
    = new Properties();
            Session session 
    = Session.getDefaultInstance(props, null);
            Store store 
    = session.getStore("pop3");
            store.connect(
    "pop.126.com","username","password");
            Folder folder 
    = store.getFolder("INBOX");    
            
    if(folder==null)
            
    {
                 System.out.println(
    "Sorry,can not find the inbox folder");
                 
    return;
            }

            folder.open(Folder.READ_WRITE);
            Message[] messages 
    = folder.getMessages();    
            
    if(messages.length==0//郵箱里沒有郵件
            {
                System.out.println(
    "Sorry,there are no email for you");
                folder.close(
    true);
                
    return;
            }

            
            System.out.println(
    "Congratulate,you have " + messages.length + " new emails");
            
    for(int i=0;i < messages.length;i++)
            
    {               
                String mailSubject 
    = getSubject(messages[i]);
                String emailfile 
    = targetFolder + mailSubject + ".html";
                System.out.println(emailfile);

                PrintWriter outFile 
    = null;
                
    try
                
    {
                    outFile 
    = new PrintWriter(new FileOutputStream(new File(emailfile)));
                    outFile.println(
    "郵件來源:" + getSourceEmailAddress(messages[i]) + "<br>");
                    outFile.println(parseMailContent(messages[i]));
                    messages[i].setFlag(Flags.Flag.DELETED,
    true); //delete email on server
                }

                
    catch(Exception e)
                
    {
                    System.out.println(
    "wrote mail " + mailSubject + " failed.");
                    
    //e.printStackTrace();                 
                }

                
    finally
                
    {
                    outFile.close();    
                }

            }

            folder.close(
    true);
            store.close();
        }


        
    /**
         * get email's subject
         
    */

        
    private String getSubject(final Message msg) throws MessagingException
        
    {
            String[] subjects 
    = msg.getHeader("Subject");
            
    if(subjects==nullreturn getCurrentLongTime();
            
            
    /**
             * may be more one subjects,but they have the same content
             
    */

            
    if(subjects[0]==null||subjects[0].equals("")) 
                
    return getCurrentLongTime();
            
            String subject 
    = decodeText(subjects[0]);
            
    int loc = subject.indexOf(" ");        
            
    if(loc==-1)
               
    return subject;
            
    else
            
    {
                loc 
    = subject.indexOf(" ",loc + 1);
                
    return subject.substring(loc + 1);
            }

        }

        
        
    /**
         * get current time
         
    */

        
    private String getCurrentLongTime()
        
    {
              
    return String.valueOf((new java.util.Date()).getTime());       
        }
        
        
        
    /**
         * email body is very complex,
         * this method parse email body to a string
         
    */

        
    private String parseMailContent(final Message msg) throws Exception
        
    {             
            
    if(msg.getContent() instanceof String)
                  
    return (String)msg.getContent();
        
            StringBuffer mailContent 
    = new StringBuffer(1000);
            Multipart multiPart 
    = (Multipart)msg.getContent();      
            String multiPartType 
    = multiPart.getContentType();
          
            BodyPart bodyPart 
    = multiPart.getBodyPart(0);
            
    if(bodyPart.getContent() instanceof String)
               mailContent.append((String)bodyPart.getContent());
            
    else if(bodyPart.getContent() instanceof MimeMultipart)
               mailContent.append(((MimeMultipart)bodyPart.getContent()).getBodyPart(
    0).getContent());
                  
              
    /**
               * deal with attachment
               
    */

            
    if(multiPartType.startsWith("multipart/mixed"))
            
    {
                mailContent.append(
    "<br>-----------附件:-----------<br>"); 
                
    for(int c = 1;c < multiPart.getCount(); c++)   
                
    {              
                    String fn 
    = extractAttachmentFileName(multiPart.getBodyPart(c).getContentType());
                    mailContent.append(fn).append(
    "<br>"); 
                }
     
            }

            
    return mailContent.toString();
        }

      
        
    /**
         * get source email address
         
    */

        
    private String getSourceEmailAddress(final Message msg) throws MessagingException
        
    {
            String address 
    = InternetAddress.toString(msg.getFrom());
            
    int foreindex = address.indexOf("<");
            
    int backindex = address.indexOf(">");
            
    if(foreindex == -1 || backindex == -1)
                
    return address;
            
    return address.substring(foreindex + 1,backindex);
        }

      
       
    /**
        * contentType contains attachment file name 
        * this method extract the file name from contentType string.
        
    */

        
    private String extractAttachmentFileName(final String contentType)
        
    {
            
    int loc = contentType.indexOf("name=");
            String fileName 
    = contentType.substring(loc + 6,contentType.length()-1);
                  
            
    return decodeText(fileName);
        }


        
    private String decodeText(final String contentText)
        
    {
            String dt 
    = null;
            
    try
            
    {
                dt 
    = MimeUtility.decodeText(contentText);
            }

            
    catch (UnsupportedEncodingException E)
            
    {
                dt 
    = "";   
            }

            
    return dt;
        }

           
        
    public static void main(String[] args)
        
    {
            
    try
            
    {
                RecieveMail rm 
    = new RecieveMail();
                rm.getMails(
    "D:\\resume\\0826\\");
            }

            
    catch(Exception e)
            
    {
                e.printStackTrace();
            }

        }

    }

    自動收取email,每個email生成一個html文件。不處理附件。

    posted on 2008-08-28 15:43 afunms 閱讀(253) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    My Links

    News

    留言簿(18)

    隨筆檔案

    相冊

    搜索

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 中文字幕无码视频手机免费看 | 9久热这里只有精品免费| 国产精品无码免费播放| 久久精品国产亚洲AV蜜臀色欲| av无码免费一区二区三区| 亚洲成av人片在线看片| 1000部拍拍拍18勿入免费视频软件| 78成人精品电影在线播放日韩精品电影一区亚洲 | 4hu四虎最新免费地址| 亚洲精品欧洲精品| 免费人成在线视频| 午夜亚洲国产理论片二级港台二级| 日韩免费视频观看| 一本大道一卡二大卡三卡免费| 亚洲爽爽一区二区三区| 中国好声音第二季免费播放| 亚洲国产精品嫩草影院在线观看| 久久免费动漫品精老司机| 亚洲福利一区二区精品秒拍| 欧美在线看片A免费观看| 亚洲精品久久无码| 亚洲中文字幕成人在线| AAA日本高清在线播放免费观看| 久久精品国产亚洲av影院| 巨波霸乳在线永久免费视频| 亚洲一区二区三区亚瑟| 噼里啪啦免费观看高清动漫4| 国产亚洲成人久久| 美女视频黄的免费视频网页 | 日木av无码专区亚洲av毛片| 人妻无码久久一区二区三区免费| 亚洲香蕉在线观看| 精品日韩亚洲AV无码| 久久亚洲精品无码播放| 日本a级片免费看| 国产成人精品免费视| 三级网站在线免费观看| 香蕉97碰碰视频免费| 亚洲熟妇AV日韩熟妇在线| 亚洲性无码av在线| 亚洲视频在线观看免费视频|