рдЬреАрдореЗрд▓ рдореЗрдВ рдмрдбрд╝реЗ рдИрдореЗрд▓

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЬреАрдореЗрд▓ рдЖрдкрдХреЛ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред
рдПрдХ рд╕реЗрд╡рд╛ рд╣реИ рдЬреЛ рдПрдХ рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреА рд╣реИ - www.findbigmail.com , рд▓реЗрдХрд┐рди рд╣рд░ рдХреЛрдИ рдЕрдкрдирд╛ рдкрд╛рд╕рд╡рд░реНрдб рдХрд┐рд╕реА рдХреЛ рднреА рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЦрд╛рдВрдЪреЗ рдкрд░) рд▓рд┐рдЦреА рдЬреЛ "рдмрд┐рдЧ рдореЗрд▓" рд▓реЗрдмрд▓ рдмрдирд╛рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ 4MB рд╕реЗ рдмрдбрд╝реЗ рд╕рднреА рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреА рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЖрдкрдХреЛ Gmail рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ "рдмрдбрд╝реЗ" рдИрдореЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ред

рдХреНрд▓рд╛рд╕рдкрд╛рде рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рд╕реЗ рдЬрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдВрджреЗрд╢ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдзреАрдорд╛ рд╣реИ (1-2 рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб), рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╕рдВрджреЗрд╢ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдореБрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдЯрдХ рдирд╣реАрдВ рд░рд╣реА рд╣реИред
рдореЗрд░реА рдорд╛рддреНрд░рд╛ (рд▓рдЧрднрдЧ 20,000) рдХреЗ рд╕рд╛рде рднреА рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рд╕рдВрджреЗрд╢ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ (getSize ()) рд╕рдВрджреЗрд╢ рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛рдПрдЧрд╛ред
рдЖрдк рдЗрд╕реЗ рдкреНрд░реА-рдлрд╝реЗрдЪ рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдХреБрд▓ рд╕рдордп рдШрдЯ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ (рдФрд░ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ) (рдпрд╛рдиреА рдЖрдк рдпрд╣ рдЬрд╛рдиреЗ рдмрд┐рдирд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЬреАрд╡рд┐рдд рд╣реИ)

рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ: Gmail рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ copyMessages () рдХреБрдЫ рднреА рдХреЙрдкреА рдпрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд╝рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдПрдХ рд▓реЗрдмрд▓ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдореИрдВ рдПрдХ рд╕рдордп рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдпрд╣ рдкрддрд╛ рди рдЪрд▓реЗ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд░реИрд╢ рд╣реЛ рдЧрдИ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛) рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рд╣реИ - рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рдкреВрдЫреЗрдВ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рди рдХрд░реЗрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд┐рд╣реНрдирд┐рдд рд╣реИрдВ, рдЖрджрд┐ред рдХрд┐рд╕реЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЦрддреНрдо рдХрд░ рджреЗрдВрдЧреЗ :)

IMAP рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦреЗрдВ - Gmail рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред



// Mark large email messages in Gmail by "Bim Mail" label.
// (c) Pavel :)
// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY

import java.security.NoSuchProviderException
import javax.mail.*

final int BIG_MAIL_SIZE = 2 ** 22 //4Mb
final String username = "xxx"
final String password = "xxx"

Properties props = System.getProperties ()
props.setProperty ( "mail.store.protocol" , "imaps" )
props.setProperty ( "mail.imap.socketFactory.class" , "javax.net.ssl.SSLSocketFactory" )
props.setProperty ( "mail.imap.socketFactory.fallback" , "false" )


Folder all, big
Store store

try {
   Session session = Session.getDefaultInstance ( props, null )
   store = session.getStore ( "imaps" )
   final String mailaddress = "$username@gmail.com"



   store.connect ( "imap.gmail.com" , mailaddress, password )
   def folderName = "[Gmail]/All Mail"
   all = store.getFolder ( folderName )
   all.open ( Folder.READ_WRITE ) ;

   println ( "Creating BigMail ..." )
   big = store.getFolder ( "BigMail" )
   if ( big.create ( Folder.HOLDS_MESSAGES ))
     println "Ok."
   else
     println "Failure. Already exists?"

   big.open ( Folder.READ_WRITE ) ;

   println "Downloading from folder $folderName ...."
   List<Message> messages = all.getMessages ()
   println "Got ${messages.size()} messages"


   int count = 0
   messages.each {
     int size = it.getSize () ;

     if ( size > BIG_MAIL_SIZE ) {
       println "$count: Big mail: ${it.getSubject()} (${it.getSize()})"
       all.copyMessages ([ it ] .toArray ( new Message [ 1 ]) , big )

     }
     else {
       println count
     }
     count++

   }


} catch ( NoSuchProviderException e ) {
   e.printStackTrace () ;
   System.exit ( 1 ) ;
} catch ( MessagingException e ) {
   e.printStackTrace () ;
   System.exit ( 2 ) ;
}
finally {
   // Close connection
   all.close ( false )
   big.close ( false )
   store.close ()
}


Java2html




Source: https://habr.com/ru/post/In110738/


All Articles