java使用IMAP連接Gmail并解析郵件

by57 11年前發布 | 2K 次閱讀 Java

import java.util.List;
import java.util.Properties;
import java.util.Date;
import java.util.Locale;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import javax.mail.Session;
import javax.mail.MessagingException;
import javax.mail.Store;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.NoSuchProviderException;
import javax.mail.Address;
import javax.mail.internet.MimeMessage;
import java.text.SimpleDateFormat;

public final class YomunkoEmails { public static void main( String[] args ) {

  String host = "imap.gmail.com";
  String username = "myusername";
  String password = "mypassword";

  SimpleDateFormat myFormatter = new SimpleDateFormat( "yyyy-MM-dd", Locale.US );

  Properties props = System.getProperties();
  props.setProperty( "mail.store.protocol", "imaps" );

  BufferedWriter myWriter = null;
  try {
      myWriter = new BufferedWriter( new FileWriter( 
    "/home/diggler/Desktop/groovy_testing/BigBendHotSprings/BBHSHelpers.csv" ) );
      myWriter.write( "\"Sent Date\",\"Subject\",\"From\",
    \"E-Mail\",\"Phone Number\",\"Skills & Interests\",\"Comments\"\n" );
  }
  catch ( IOException myIOE ) {
      myIOE.printStackTrace();
  }

  try {

    Session mySession = Session.getDefaultInstance( props, null );
    Store myStore = mySession.getStore("imaps");
    myStore.connect( host, username, password );

    System.out.println( myStore );

    Folder inbox = myStore.getFolder("BBHS Helpers");
    inbox.open(Folder.READ_ONLY);
    Message messages[] = inbox.getMessages();
    System.out.println( messages.length );

    for ( Message message:messages ) {
        Address addys[] = message.getReplyTo();
        for ( Address addy:addys ) {
            //System.out.println( addy.toString() );
          if (  addy.toString().trim().equals( "alchemiculture <alchemiculture@culligan.dreamhost.com>" ) ) {
             if ( message.getSubject().startsWith( "BigBendHotSprings.org Message from" ) ) {
                 String messageSubject =  message.getSubject();
                 String sentDate = myFormatter.format( message.getSentDate() );
                 MimeMessage myMimeMessage = (MimeMessage) message;
               try {
                   // System.out.println( messageSubject );
                   // System.out.println( sentDate );
                  String messageContent = (String) myMimeMessage.getContent();
                  String messageContentLines[] = messageContent.split("\n");
                  String from = "";
                  String eMail = "";
                  String phoneNumber = "";
                  for ( String line:messageContentLines ) {
                     if ( line.startsWith( "From:" ) ) {
                        from = line.split(":")[1].trim();
                     }
                     if ( line.startsWith( "Email:" ) ) {
                        eMail = line.split(":")[1].trim();
                     }
                     if ( line.startsWith( "Phone:" ) ) {
                        phoneNumber = line.split(":")[1].trim();
                     }
                  }
                  String messageContentSplits[] = messageContent.split("Skills and Interests:");
                  String messageContentSplitsII[] = messageContentSplits[1].split("Comments:");
                  String skillsAndInterests = messageContentSplitsII[0].trim();
                  skillsAndInterests = skillsAndInterests.replaceAll( "\n", "" );
                  skillsAndInterests = skillsAndInterests.replaceAll( "\"", "" );
                  skillsAndInterests = skillsAndInterests.replaceAll( ",", "" );
                  String comments = messageContentSplitsII[1].trim();
                  comments = comments.replaceAll( "\n", "" );
                  comments = comments.replaceAll( "\"", "" );
                  comments = comments.replaceAll( ",", "" );

                  // System.out.println( skillsAndInterests );
                  // System.out.println( comments );

                  myWriter.write( "\"" + sentDate + "\",\"" + messageSubject + "\",\"" + 
        from + "\",\"" + eMail + "\",\"" + phoneNumber + "\",\"" + s\
        killsAndInterests + "\",\"" + comments + "\"\n" );

               }
               catch ( IOException myIOE ) {
                   myIOE.printStackTrace();
               }
             }
          }
        }
    }

  }
  catch ( NoSuchProviderException e ) {
e.printStackTrace();
  }
  catch ( MessagingException e ) {
      e.printStackTrace();
  }

  try {
      myWriter.close();
  }
  catch ( IOException myIOE ) {
      myIOE.printStackTrace();
  }

} }</pre>

 本文由用戶 by57 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!