Artigos‎ > ‎Email‎ > ‎

Sincronizar Emails Imap com imapsync


Primeiramente gostaria de salientar que não sou o autor principal do conteúdo deste artigo. A minha intenção é de mostrar o que outros autores tem realizado (referenciando links para o conteúdo original) neste blog até como um guia pessoal para uso próprio e ainda compartilhar minhas anotações e pequenas modificações que realizo no conteúdo, desejando que possa ajudar mais alguém em algum lugar.
First and foremost, I take no credit for any of this post’s content. I am really just taking what others have done (which I have links to bellow) and am putting it on my blog for a personal reference and hopefully the small changes that I made to their guides will help someone somewhere.

antigo link: https://sites.google.com/site/ubuntu4us/artigos/email/migrar-pastas-imap-entre-servidores

sudo apt-get install libdigest-hmac-perl libdigest-hmac-perl libterm-readkey-perl libterm-readkey-perl libdate-manip-perl libdate-manip-perl libmail-imapclient-perl makepasswd rcs perl-doc libmail-imapclient-perl make git-core git-doc git-svn git-gui gitk
mkdir ~/imapsync_src
cd ~/imapsync_src
git clone git://github.com/imapsync/imapsync.git
cd imapsync 
sudo make install

teste a versão instalada com o comando:
imapsync -v

A versão mais nova é a (Fevereiro 2014): 1.580



Help com todas as opções da linha de comando:

--dry                   : Makes imapsync doing nothing, just print what would be done without --dry.
--host1       <string> : Source or "from" imap server. Mandatory.
--port1       <int>     : Port to connect on host1. Default is 143.
--user1       <string> : User to login on host1. Mandatory.
--showpasswords         : Shows passwords on output instead of "MASKED". Useful to restart a complete run by just reading a log.
--password1   <string> : Password for the user1.
--host2       <string> : "destination" imap server. Mandatory.
--port2       <int>     : Port to connect on host2. Default is 143.
--user2       <string> : User to login on host2. Mandatory.
--password2   <string> : Password for the user2.
--passfile1   <string> : Password file for the user1. It must contain the password on the first line. This option avoids to show the password on the command line like --password1 does.
--passfile2   <string> : Password file for the user2. Contains the password.
--domain1     <string> : Domain on host1 (NTLM authentication).
--domain2     <string> : Domain on host2 (NTLM authentication).
--authuser1   <string> : User to auth with on host1 (admin user). Avoid using --authmech1 SOMETHING with --authuser1.
--authuser2   <string> : User to auth with on host2 (admin user).
--proxyauth1           : Use proxyauth on host1. Requires --authuser1. Required by Sun/iPlanet/Netscape IMAP servers to be able to use an administrative user.
--proxyauth2           : Use proxyauth on host2. Requires --authuser2. Required by Sun/iPlanet/Netscape IMAP servers to be able to use an administrative user
--authmd51             : Use MD5 authentification for host1.
--authmd52             : Use MD5 authentification for host2.
--authmech1   <string> : Auth mechanism to use with host1: PLAIN, LOGIN, CRAM-MD5 etc. Use UPPERCASE.
--authmech2   <string> : Auth mechanism to use with host2. See --authmech1
--ssl1                 : Use an SSL connection on host1.
--ssl2                 : Use an SSL connection on host2.
--tls1                 : Use an TLS connection on host1.
--tls2                 : Use an TLS connection on host2.
--timeout    <int>     : Connections timeout in seconds. Default is 120. 0 means no timeout.
--folder      <string> : Sync this folder.
--folderrec   <string> : Sync this folder recursively.
--folderfirst <string> : Sync this folder first. --folderfirst "Work"
--folderlast  <string> : Sync this folder last. --folderlast "[Gmail]/All Mail"
--include     <regex>   : Sync folders matching this regular expression Blancs like in "foo bar" have to be written "foo\ bar". in case both --include --exclude options are use, include is done before.
--exclude     <regex>   : Skips folders matching this regular expression Several folders to avoid:  --exclude 'fold1|fold2|f3' skips fold1, fold2 and f3.
--regextrans2 <regex>   : Apply the whole regex to each destination folders.  When you play with the --regextrans2 option, first add also the safe options --dry --justfolders Then, when happy, remove --dry, remove --justfolders.Have in mind that --regextrans2 is applied after prefix  and separator inversion.
--tmpdir      <string> : Where to store temporary files and subdirectories.Will be created if it doesn't exist. Default is system specific, Unix is /tmp but it's often small and deleted at reboot.--tmpdir /var/tmp should be better.
--pidfile     <string> : The file where imapsync pid is written.
--pidfilelocking       : Abort if pidfile already exists. Usefull to avoid  concurrent transfers on the same mailbox.
--prefix1     <string> : Remove prefix to all destination folders  (usually INBOX. or INBOX/ or an empty string "") you have to use --prefix1 if host1 imap server does not have NAMESPACE capability, all other cases are bad.
--prefix2     <string> : Add prefix to all host2 folders. See --prefix1
--sep1        <string> : Host1 separator in case NAMESPACE is not supported.
--sep2        <string> : Host2 separator in case NAMESPACE is not supported.
--regexmess   <regex>   : Apply the whole regex to each message before transfer. Example: 's/\000/ /g' # to replace null by space.
--regexflag   <regex>   : Apply the whole regex to each flags list. Example: 's/"Junk"//g' # to remove "Junk" flag.
--delete               : Deletes messages on host1 server after a successful  transfer. Option --delete has the following behavior: it marks messages as deleted with the IMAP flag  \Deleted, then messages are really deleted with an EXPUNGE IMAP command.
--delete2               : Delete messages in host2 that are not in host1 server. Useful for backup or pre-sync.
--delete2duplicates     : Delete messages in host2 that are duplicates. Works only without --useuid since duplicates are detected with header part of each message.
--delete2folders       : Delete folders in host2 that are not in host1 server.  For safety, first try it like this (it is safe):--delete2folders --dry --justfolders --nofoldersizes
--delete2foldersonly  <regex> : Deleted only folders matching regex.Example: --delete2foldersonly "/^Junk$|^INBOX.Junk$/"
--delete2foldersbutnot<regex> : Do not delete folders matching regex. Example: --delete2foldersbutnot "/Tasks$|Contacts$|Foo$/"
--noexpunge             : Do not expunge messages on host1. Expunge really deletes messages marked deleted. Expunge is made at the beginning, on host1 only. Newly transferred messages are also expunged if option --delete is given. No expunge is done on host2 account (unless --expunge2)
--expunge1             : Expunge messages on host1 after messages transfer.
--expunge2             : Expunge messages on host2 after messages transfer.
--uidexpunge2           : uidexpunge messages on the host2 account that are not on the host1 account, requires --delete2
--syncinternaldates     : Sets the internal dates on host2 same as host1. Turned on by default. Internal date is the date a message arrived on a host (mtime).
--idatefromheader       : Sets the internal dates on host2 same as the "Date:" headers.
--maxsize     <int>     : Skip messages larger  (or equal) than <int> bytes
--minsize     <int>     : Skip messages smaller (or equal) than <int> bytes
--maxage      <int>     : Skip messages older than <int> days. final stats (skipped) don't count older messages see also --minage
--minage      <int>     : Skip messages newer than <int> days. final stats (skipped) don't count newer messages You can do (+ are the messages selected): past|----maxage+++++++++++++++>now past|+++++++++++++++minage---->now  past|----maxage+++++minage---->now (intersection) past|++++minage-----maxage++++>now (union)
--search      <string> : Selects only messages returned by this IMAP SEARCH command. Applied on both sides.
--search1     <string> : Same as --search for selecting host1 messages only.
--search2     <string> : Same as --search for selecting host2 messages only. --search CRIT equals --search1 CRIT --search2 CRIT
--exitwhenover   <int> : Stop syncing when total bytes transferred reached. Gmail per day allows 2500000000 down 500000000 upload.
--maxlinelength <int>   : skip messages with line length longer than <int> bytes. RFC 2822 says it must be no more than 1000 bytes.
--useheader   <string> : Use this header to compare messages on both sides. Ex: Message-ID or Subject or Date.
--subscribed           : Transfers subscribed folders.
--subscribe             : Subscribe to the folders transferred on the host2 that are subscribed on host1. On by default.
--subscribe_all         : Subscribe to the folders transferred on the host2 even if they are not subscribed on host1.
--nofoldersizes         : Do not calculate the size of each folder in bytes and message counts. Default is to calculate them.
--nofoldersizesatend   : Do not calculate the size of each folder in bytes and message counts at the end. Default is on.
--justfoldersizes       : Exit after having printed the folder sizes.
--syncacls             : Synchronises acls (Access Control Lists).
--nosyncacls           : Does not synchronize acls. This is the default.Acls in IMAP are not standardized, be careful.
--usecache             : Use cache to speedup.
--nousecache           : Do not use cache. Caveat: --useuid --nousecache creates duplicates on multiple runs.
--useuid               : Use uid instead of header as a criterium to recognize  messages. Option --usecache is then implied unless --nousecache is used.  
--debug                 : Debug mode.
--debugcontent         : Debug content of the messages transfered.
--debugflags           : Debug flags.
--debugimap1           : IMAP debug mode for host1. imap debug is very verbose.
--debugimap2           : IMAP debug mode for host2.
--debugimap             : IMAP debug mode for host1 and host2.
--version               : Print software version.
--noreleasecheck       : Do not check for new imapsync release (a http request).
--justconnect           : Just connect to both servers and print useful information. Need only --host1 and --host2 options.
--justlogin             : Just login to both host1 and host2 with users credentials, then exit.
--justfolders           : Do only things about folders (ignore messages).





Exemplos de uso:

Teste sua conexão:
imapsync --host1 imap.gmail.com --port1 993 --ssl1 --authmech1 LOGIN --split1 100 \
               --user1 you@gmail.com --password1 ****** \
               --host2 imap.gmail.com --port2 993 --ssl2 --authmech2 LOGIN --split2 100 \
               --user2 you@domain.com --password2 ****** \
               --syncinternaldates --allowsizemismatch --useheader Message-ID \
               --justconnect


Gmail para Gapps
imapsync --host1 imap.gmail.com --port1 993 --user1 you@gmail.com --password1 ****** --ssl1 --host2 imap.gmail.com --port2 993 --user2 you@domain.com --password2 ****** --ssl2 --syncinternaldates --split1 100 --split2 100 --authmech1 LOGIN --authmech2 LOGIN --allowsizemismatch --useheader Message-ID
Gmail para Yahoo
imapsync --host1 imap.gmail.com --user1 username@gmail.com --password1 ******** --host2 imap.mail.yahoo.com --user2 username@yahoo.com --password2 ******* --syncinternaldates --ssl1 -ssl2 --noauthmd5 --split1 100 --split2 100 --port1 993 --port2 993 --exclude "All Mail|Spam|Trash" --allowsizemismatch





O URL específico do gadget não foi encontrado



ċ
example.tar.gz
(1k)
Ademar Arvati Filho,
4 de fev de 2014 12:14
Comments