mirror of
https://github.com/imapsync/imapsync.git
synced 2025-06-07 21:25:23 +02:00
1.592
This commit is contained in:
parent
428581af1e
commit
459f6a81cb
151 changed files with 10053 additions and 1910 deletions
49
ChangeLog
49
ChangeLog
|
@ -1,17 +1,58 @@
|
|||
|
||||
RCS file: RCS/imapsync,v
|
||||
Working file: imapsync
|
||||
head: 1.584
|
||||
head: 1.592
|
||||
branch:
|
||||
locks: strict
|
||||
gilles: 1.584
|
||||
gilles: 1.592
|
||||
access list:
|
||||
symbolic names:
|
||||
keyword substitution: kv
|
||||
total revisions: 584; selected revisions: 584
|
||||
total revisions: 592; selected revisions: 592
|
||||
description:
|
||||
----------------------------
|
||||
revision 1.584 locked by: gilles;
|
||||
revision 1.592 locked by: gilles;
|
||||
date: 2014/05/22 10:03:17; author: gilles; state: Exp; lines: +23 -12
|
||||
Bugfix. Make TLS works with last IO::Socket::SSL default value (SSL_verify_mode => 'SSL_VERIFY_NONE') in tls.
|
||||
----------------------------
|
||||
revision 1.591
|
||||
date: 2014/05/22 01:32:52; author: gilles; state: Exp; lines: +30 -19
|
||||
Bugfix. IO::Tee and Open3 in backstic() were incompatible.
|
||||
FailedBugFix. Tried to fix Tls issue "ERROR: Unable to start TLS: SSL connect attempt failed with unknown error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed at c:/strawberry/perl/site/lib/Mail/IMAPClient.pm line 455." No success.
|
||||
----------------------------
|
||||
revision 1.590
|
||||
date: 2014/05/20 23:07:14; author: gilles; state: Exp; lines: +12 -6
|
||||
Added option --disarmreadreceipts to fix resending read receipts with Exchange as host2.
|
||||
----------------------------
|
||||
revision 1.589
|
||||
date: 2014/05/20 21:35:16; author: gilles; state: Exp; lines: +93 -37
|
||||
Added logging by default in subdirectory LOG_imapsync/.
|
||||
Added option --log. --log is on by default. --nolog to disable logging.
|
||||
Added option --logfile. Default is like LOG_imapsync/YYYY_MM_DD_HH_MM_SS_user2.txt
|
||||
where YYYY_MM_DD_HH_MM_SS is the current date and time like 2014_05_20_23_45_10
|
||||
Use IO::Tee Perl module for logging.
|
||||
Fixed bug when creating folders on host2 with sep2 to \\ (Lotus Notes).
|
||||
Updated the code to easily switch on --noreleasecheck by default.
|
||||
----------------------------
|
||||
revision 1.588
|
||||
date: 2014/05/15 10:36:10; author: gilles; state: Exp; lines: +18 -11
|
||||
Added FTGate support (no EXAMINE).
|
||||
----------------------------
|
||||
revision 1.587
|
||||
date: 2014/05/09 17:03:27; author: gilles; state: Exp; lines: +14 -7
|
||||
Typo when advising about prefix.
|
||||
Easy way to switch releasecheck of by default.
|
||||
----------------------------
|
||||
revision 1.586
|
||||
date: 2014/04/10 16:02:39; author: gilles; state: Exp; lines: +9 -7
|
||||
Just a test for good_date and pop2imap
|
||||
----------------------------
|
||||
revision 1.585
|
||||
date: 2014/02/17 15:24:34; author: gilles; state: Exp; lines: +39 -34
|
||||
Warn syncing messges will not be simulated when --dry mode is on and folder on host2 does not exist yet.
|
||||
Try to get folder size when a folder on host2 has the same name but with a different case like OLD_MAIL -> old_mail. Avoid "does not exist" output.
|
||||
----------------------------
|
||||
revision 1.584
|
||||
date: 2014/02/05 00:40:59; author: gilles; state: Exp; lines: +77 -50
|
||||
Debug. Print separator given by NAMESPACE even when --sep1 oe --sep2 is used.
|
||||
Debug. Prints prefix given by NAMESPACE even when --prefix1 or --prefix2 is used.
|
||||
|
|
213
FAQ
213
FAQ
|
@ -1,5 +1,5 @@
|
|||
#!/bin/cat
|
||||
# $Id: FAQ,v 1.166 2014/01/27 02:23:30 gilles Exp gilles $
|
||||
# $Id: FAQ,v 1.175 2014/05/21 01:20:20 gilles Exp gilles $
|
||||
|
||||
+------------------+
|
||||
| FAQ for imapsync |
|
||||
|
@ -128,7 +128,7 @@ R2. It can be done, depending on the email server softwares used.
|
|||
a) From Exchange to Exchange, export contacts and calendar to
|
||||
PST format files on host1 and import them on host2.
|
||||
|
||||
b) From Gmail to Gmail, export and import calandars in ical format,
|
||||
b) From Gmail to Gmail, export and import calendars in ical format,
|
||||
extension for those files is .ics.
|
||||
Contacts can be copied using a csv file. See the help page
|
||||
http://support.google.com/mail/bin/topic.py?hl=en&topic=1669027
|
||||
|
@ -172,12 +172,12 @@ The ... can be replaced by nothing or any supplementary imapsync option.
|
|||
=======================================================================
|
||||
Q. Where I can find old imapsync releases?
|
||||
|
||||
R. Search the internet.
|
||||
R. Search the Internet.
|
||||
|
||||
=======================================================================
|
||||
Q. Where I can find free open and gratis imapsync releases?
|
||||
|
||||
R. Search the internet.
|
||||
R. Search the Internet.
|
||||
|
||||
Q. Is is legal to find imapsync gratis (or not) elsewhere?
|
||||
|
||||
|
@ -208,9 +208,9 @@ R. Yes
|
|||
|
||||
Q. How can I fix this?
|
||||
|
||||
R. The cache path reflects hostnames or ip adresses, just change the
|
||||
R. The cache path reflects hostnames or ip addresses, just change the
|
||||
directory names of host1 or host2. Use --dry to see if next runs
|
||||
will generate duplucates.
|
||||
will generate duplicates.
|
||||
By default the cache is like
|
||||
|
||||
/tmp/imapsync_cache/host1/user1/host2/user2/...
|
||||
|
@ -245,7 +245,7 @@ Notes about --useuid
|
|||
|
||||
Case where building the cache first is necessary (to avoid multiples transfers)
|
||||
|
||||
If you run again imapsync with --useuid on a transfert already done without --useuid
|
||||
If you run again imapsync with --useuid on a transfer already done without --useuid
|
||||
then, to avoid messages be copied again, first run imapsync with --usecache
|
||||
but without --useuid, example scenario:
|
||||
|
||||
|
@ -275,7 +275,7 @@ B] I began with --useuid from the first time
|
|||
Inodes number issue
|
||||
|
||||
|
||||
The cache is simple, it uses the filsystem natively,
|
||||
The cache is simple, it uses the file-system natively,
|
||||
it's just an empty file per message transfered.
|
||||
When mailboxes are huge the cache can exhaust the number of inodes
|
||||
allowed in the filesystem, that's a limitation like size but less
|
||||
|
@ -430,13 +430,13 @@ It looks like you use POP3 instead of IMAP, POP3 has only INBOX.
|
|||
|
||||
=======================================================================
|
||||
Q. I am interested in creating a local clone of the IMAP on a LAN
|
||||
server for faster synchronisations, email will always be delivered
|
||||
to the remote server and so the synchronisation will be one way - from
|
||||
server for faster synchronizations, email will always be delivered
|
||||
to the remote server and so the synchronization will be one way - from
|
||||
remote to local. How suited is imapsync for continuous one-way
|
||||
synchronisation of mailboxes? Is there a better solution?
|
||||
synchronization of mailboxes? Is there a better solution?
|
||||
|
||||
R. If messages are delivered remotely and you play locally with the
|
||||
copy, in order to have fast access, then the synchronisation can't
|
||||
copy, in order to have fast access, then the synchronization can't
|
||||
be one way. You may change flags, you may move messages in
|
||||
different folders etc.
|
||||
|
||||
|
@ -509,7 +509,7 @@ messages on both sides but it uses their imap uid. In that case
|
|||
duplicates on host1 are transfered on host2.
|
||||
|
||||
=======================================================================
|
||||
Q. How can I remove duplicates on a uniq host
|
||||
Q. How can I remove duplicates on a unique host
|
||||
|
||||
R. Just run imapsync on the same account with option --delete2,
|
||||
ie with host1 == host2 and user1 == user2
|
||||
|
@ -535,6 +535,34 @@ http://code.google.com/p/wintee/
|
|||
|
||||
imapsync ... 2>&1 | tee log.txt
|
||||
|
||||
=======================================================================
|
||||
Q. Can I run more instances of imapsync in parallel on a Windows host.
|
||||
|
||||
R. Yes!
|
||||
|
||||
Q. Any performance issue?
|
||||
|
||||
You have to try and check the transfer rates, sum them up to
|
||||
have a uniq numeric criteria.
|
||||
There is always a limit, depending on remote imap servers
|
||||
and the one running imapsync;
|
||||
CPU, memory, Inputs/Outputs are the classical bottlenecks,
|
||||
the worst is the winner that sets the limit.
|
||||
|
||||
examples/sync_loop_windows.bat says
|
||||
...
|
||||
REM ==== Parallel executions ====
|
||||
REM If you want to do parallel runs of imapsync then this current script is a good start.
|
||||
REM Just copy it several times and replace, on each copy, the csvfile variable value.
|
||||
REM Instead of SET csvfile=file.txt write for example
|
||||
REM SET csvfile=file01.txt in the first copy
|
||||
REM then also
|
||||
REM SET csvfile=file02.txt in the second copy etc.
|
||||
REM Of course you also have to split the data contained in file.txt
|
||||
REM into file01.txt file02.txt etc.
|
||||
REM After that, just double-click on each batch file to launch each process
|
||||
|
||||
|
||||
=======================================================================
|
||||
Q. I run multiple imapsync applications at the same time then get a
|
||||
warning "imapsync.pid already exists, overwriting it".
|
||||
|
@ -563,7 +591,7 @@ R. Some servers take care about character case in folder names,
|
|||
and the host2 server already has a folder "Trash" or "TRASH"
|
||||
then imapsync will try to create the folder "trash" on host2,
|
||||
because trash and Trash are different strings. But if host2
|
||||
does not repect character case it will consider folder "trash"
|
||||
does not respect character case it will consider folder "trash"
|
||||
already exists and will say it, that's the error message
|
||||
reported by imapsync: "Mailbox already exists", message coming
|
||||
from the server.
|
||||
|
@ -592,7 +620,7 @@ Example:
|
|||
sep1 = /
|
||||
sep2 = .
|
||||
|
||||
imapsync reverts each separator automaticaly.
|
||||
imapsync reverts each separator automatically.
|
||||
|
||||
a) All / character coming from host1 are converted to . (convert the separator)
|
||||
b) All . character coming from host1 are converted to / (to avoid
|
||||
|
@ -602,7 +630,7 @@ So
|
|||
INBOX/Ops.foo.bar (Ops.foo.bar is just one folder name) will be translated to
|
||||
INBOX.Ops/foo/bar
|
||||
|
||||
Sometimes the sep1 character is not valid on host2 (character "/" usualy)
|
||||
Sometimes the sep1 character is not valid on host2 (character "/" usually)
|
||||
|
||||
R. Try :
|
||||
|
||||
|
@ -853,7 +881,7 @@ For example to convert flag $label1 to \label1
|
|||
imapsync ... --regexflag "s/\$label1/\\label1/g" --debugflags
|
||||
|
||||
=======================================================================
|
||||
Q. I need to keep only a defind list of flags, how can I do?
|
||||
Q. I need to keep only a defined list of flags, how can I do?
|
||||
The destination imap server complains about bad flags (Exchange).
|
||||
|
||||
R1. Recent imapsync deals with this issue by filter with PERMANENTFLAGS
|
||||
|
@ -895,7 +923,7 @@ Recent imapsync deals with this issue by filter with PERMANENTFLAGS
|
|||
automatically.
|
||||
|
||||
=======================================================================
|
||||
Q. Flags are not well synchonized. Is it a bug?
|
||||
Q. Flags are not well synchronized. Is it a bug?
|
||||
|
||||
R. It happens with some servers on the first sync.
|
||||
Also, it was a bug from revision 1.200 to revision 1.207
|
||||
|
@ -1030,7 +1058,7 @@ Q: I'm trying to use imapsync on win32 for gmail and it requires ssl.
|
|||
Imapsync appears to require IO::Socket::SSL. What can I do?
|
||||
|
||||
R1: use standalone imapsync.exe, it contains IO::Socket::SSL
|
||||
Perl module embeded.
|
||||
Perl module embedded.
|
||||
|
||||
R2: Module IO::Socket::SSL is available on Win32
|
||||
with Strawberry Perl.
|
||||
|
@ -1122,7 +1150,7 @@ or maybe
|
|||
--exclude '^"public\.'
|
||||
|
||||
In the example given the character "." is the folder separator, you
|
||||
can ommit it. Just take the string as it appears on the imapsync
|
||||
can omit it. Just take the string as it appears on the imapsync
|
||||
output line :
|
||||
|
||||
From folders list : [INBOX] [public.dreams] [etc.]
|
||||
|
@ -1247,6 +1275,18 @@ As it seems you need to use the mailNickname (e.g. alias) defined
|
|||
for user2, not the username itself.
|
||||
http://blogs.technet.com/b/exchange/archive/2004/03/31/105275.aspx
|
||||
|
||||
|
||||
A little note from John Becker.
|
||||
After you pointed out that I had issues with authorization, I realized that
|
||||
as an admin user I don't have all the rights on the mailboxes.
|
||||
So I added myself to the user mailbox with full rights.
|
||||
I also changed the login type on the Exchange CAS to type 1, plain text.
|
||||
The command that I used for imapsync is:
|
||||
imapsync ... ^
|
||||
--host2 exchange-server ^
|
||||
--user2 "windows-domain\admin-user\aaaa" ^
|
||||
--password2 admin-password ...
|
||||
|
||||
======================================================================
|
||||
Q. How to migrate from or to Office 365 with an admin/authuser account?
|
||||
|
||||
|
@ -1342,7 +1382,7 @@ another without recreating the folder structure and the target server.
|
|||
|
||||
R. Yes.
|
||||
|
||||
For example, to synchronize all messages in all forders on host1
|
||||
For example, to synchronize all messages in all folders on host1
|
||||
to folder INBOX only on host2:
|
||||
|
||||
1) First try (safe mode):
|
||||
|
@ -1364,7 +1404,7 @@ imapsync \
|
|||
|
||||
======================================================================
|
||||
Q. I have moved from Braunschweig to Graz, so I would like to have my
|
||||
whole Braunschweig mail sorted into a subfolder INBOX.Braunschweig
|
||||
whole Braunschweig mail sorted into a sub-folder INBOX.Braunschweig
|
||||
of my new mail account.
|
||||
|
||||
R.
|
||||
|
@ -1453,7 +1493,7 @@ a) Manually:
|
|||
1) You create a folder INBOX.2010-INBOX
|
||||
|
||||
2) Mostly every email software allow sorting by date. In INBOX, you
|
||||
select from 1 january to 31 december 2010 messages with the shift key.
|
||||
select from 1 January to 31 December 2010 messages with the shift key.
|
||||
(in mutt, use ~d)
|
||||
|
||||
3) Cut/paste in INBOX.2010-INBOX
|
||||
|
@ -1554,47 +1594,64 @@ format issues. And now it works fine. (Thanks to Hansjoerg.Maurer)
|
|||
Server specific issues and solutions
|
||||
=======================================================================
|
||||
|
||||
=======================================================================
|
||||
Q. From XXX to Exchange 2010/2013 or Office365
|
||||
|
||||
R. Here is a command line resume that solves most encountered issues when
|
||||
migrating to Exchange or Office365. To understand or change the
|
||||
details you have to read next Q/R sections.
|
||||
|
||||
On Windows:
|
||||
|
||||
imapsync ... ^
|
||||
--maxsize 10000000 ^
|
||||
--maxlinelength 9900 ^
|
||||
--regexflag "s/\\Flagged//g" ^
|
||||
--disarmreadreceipts
|
||||
|
||||
|
||||
On Unix:
|
||||
|
||||
imapsync ... \
|
||||
--maxsize 10000000 \
|
||||
--maxlinelength 9900 \
|
||||
--regexflag "s/\\Flagged//g" \
|
||||
--disarmreadreceipts
|
||||
|
||||
|
||||
=======================================================================
|
||||
Q. From XXX to Exchange 2013 or Office365 read receipts are all resent
|
||||
again after a sync. Even for old messages. How can I fix that?
|
||||
Q. From XXX to Exchange 2013 or Office365 read receipts are all
|
||||
resent again after a sync. Even for old messages. How can I fix that?
|
||||
|
||||
R. imapsync can remove the header containing this read receipt request.
|
||||
|
||||
On Unix, add:
|
||||
On Unix or Windows use:
|
||||
|
||||
--regexmess 's{\A(.*?(?! ^$))(^Disposition-Notification-To:.*?\n)}{$1}gxms'
|
||||
imapsync ... --disarmreadreceipts
|
||||
|
||||
On Windows, add:
|
||||
|
||||
--regexmess "s{\A(.*?(?! ^$))(^Disposition-Notification-To:.*?\n)}{$1}gxms"
|
||||
|
||||
Since those read receipts should be sent for unseen messages going
|
||||
Since read receipts should be sent for unseen messages that will go
|
||||
to a seen state after the migration, you could be strict and apply
|
||||
the regex only to seen messages.
|
||||
Selecting seen message can be done with:
|
||||
|
||||
imapsync ... --search1 "SEEN" --regexmess "..."
|
||||
imapsync ... --search1 "SEEN" --disarmreadreceipts
|
||||
|
||||
Of course a second run has to be run without the --regexmess for
|
||||
unseen messages:
|
||||
|
||||
imapsync ... --search1 "SEEN"
|
||||
imapsync ... --search1 "UNSEEN"
|
||||
|
||||
If you want to keep the header content and still suppress read receipts
|
||||
then use the following instead, it adds a prefix "X-" to "Disposition-Notification-To:"
|
||||
If fact --disarmreadreceipts is just an option equivalent to:
|
||||
|
||||
--regexmess 's{\A(.*?(?! ^$))^Disposition-Notification-To:(.*?)$}{$1X-Disposition-Notification-To:$2}igxms'
|
||||
|
||||
The small regex remove the header Disposition-Notification-To, the long one
|
||||
replace it so users can still see messages had a Disposition-Notification-To
|
||||
header before.
|
||||
That regex prefixes the header Disposition-Notification-To with an X-
|
||||
so that it becomes inactive.
|
||||
|
||||
I will add an option to set this regex.
|
||||
Thanks to David Karnowski for pointing and solving this issue.
|
||||
|
||||
=======================================================================
|
||||
Q. From XXX to Exchange 2013 or Office365 I get this error message
|
||||
Q. From XXX to Exchange 2010/2013 or Office365 I get this error message
|
||||
sometimes: "BAD Command Argument Error 11"
|
||||
|
||||
R. This error message comes from Exchange IMAP server when it
|
||||
|
@ -1602,9 +1659,10 @@ R. This error message comes from Exchange IMAP server when it
|
|||
|
||||
* Some messages are bigger than the size limit. 10 MB by default
|
||||
on Exchange. It can be upped by configuration for Exchange.
|
||||
If you configure this limit then use option --maxsize 10000000
|
||||
for 10 MB, change it if needed) to tell imapsync to skip those messages.
|
||||
This value is 25 MB for Office365 --maxsize 25000000
|
||||
If you can't configure this limit then use option
|
||||
--maxsize 10000000 for 10 MB, change it if needed) to tell
|
||||
imapsync to skip those messages.
|
||||
This value is 25 MB by default for Office365 --maxsize 25000000
|
||||
|
||||
imapsync ... --maxsize 10000000 # 10 MB for Exchange
|
||||
|
||||
|
@ -1617,9 +1675,9 @@ R. This error message comes from Exchange IMAP server when it
|
|||
* Some messages have some lines too long. Use option --maxlinelength
|
||||
to skip messages whose max line length is over a number of bytes.
|
||||
--maxlinelength 1000 is a RFC2822 must but most server support
|
||||
higher values.
|
||||
higher values. Exchange supports 9900:
|
||||
|
||||
imapsync ... --maxlinelength 1000
|
||||
imapsync ... --maxlinelength 9900
|
||||
|
||||
Have also in mind that Exchange closes the connection after 10 errors
|
||||
encountered so you might also see "BYE Connection closed" errors from
|
||||
|
@ -1685,7 +1743,7 @@ and report me what you discover in case you detect something.
|
|||
The --addheader option is there because "Sent" folder messages
|
||||
sometimes lack the "Message-Id:" and "Received:" headers needed
|
||||
by imapsync to identify messages (only when --useuid is not used).
|
||||
So option --addheader adds a "Message-Id" header consiting fo
|
||||
So option --addheader adds a "Message-Id" header consisting of
|
||||
the imap UID of the message on the host1 folder, like
|
||||
"Message-Id: 12345@imapsync".
|
||||
|
||||
|
@ -1696,8 +1754,11 @@ the imap UID of the message on the host1 folder, like
|
|||
--regextrans2 "s/[ ]+/_/g" is there to convert blank characters not
|
||||
accepted by gmail to character _ underscore. In fact only leading
|
||||
and trailing blank characters are problems with gmail, and
|
||||
also succesive blank ending whith the IMAP error
|
||||
also successive blanks ending with the IMAP error
|
||||
"NO [CANNOT] Folder contains excess whitespace (Failure)"
|
||||
If you want to change only leading and trailing blank characters
|
||||
then use instead:
|
||||
--regextrans2 "s,(/|^) +,\$1,g" --regextrans2 "s, +(/|$),\$1,g"
|
||||
|
||||
--regextrans2 "s/[\^]/_/g" is mandatory. It converts, since
|
||||
not accepted by gmail, character ^ to character _ underscore.
|
||||
|
@ -1718,9 +1779,9 @@ You can add --folder "INBOX.Sent" in the example in case
|
|||
you want to sync only the "Sent" folder.
|
||||
|
||||
You can select folders exported to imap within the gmail preferences,
|
||||
unselect all "System labels" depending on your needs.
|
||||
unselect some "System labels", depending on your needs.
|
||||
|
||||
The "All Mail" archive pseudo-folder should be updated automaticaly.
|
||||
The "All Mail" archive pseudo-folder should be updated automatically.
|
||||
|
||||
|
||||
|
||||
|
@ -1803,7 +1864,7 @@ syncs folders (Gmail labels) using the classical alphanumeric order.
|
|||
--folderlast "CanWait" will sync only messages that have the
|
||||
label CanWait and only it.
|
||||
|
||||
--folderlast "[Gmail]/All Mail", in conjonction with option
|
||||
--folderlast "[Gmail]/All Mail", in conjunction with option
|
||||
--skipcrossduplicates, will only put in "[Gmail]/All Mail"
|
||||
the messages that are not labeled at all.
|
||||
|
||||
|
@ -2115,8 +2176,8 @@ Any user having time to spend to debug Exchange2007 with imapsync
|
|||
is welcome.
|
||||
|
||||
R2. Other solution
|
||||
Two users succeded by using "MS Transporter Suite" (which is closed
|
||||
expensive nonfree software).
|
||||
Two users succeeded by using "MS Transporter Suite" (which is closed
|
||||
expensive non-free software).
|
||||
|
||||
======================================================================
|
||||
Q. From Microsoft Exchange 2000 IMAP4rev1 server version 6.0.6487.0.
|
||||
|
@ -2141,6 +2202,50 @@ Q. From or to QQMail IMAP4Server
|
|||
|
||||
R. imapsync ... --noabletosearch
|
||||
|
||||
======================================================================
|
||||
Q. From FirstClass to XXX
|
||||
http://www.firstclass.com/
|
||||
|
||||
R. Migrating from FirstClass is not easy because FirstClass, strangely,
|
||||
does not show all messages via IMAP. To make it show all messages,
|
||||
a trick, painful to follow by hand, is moving emails
|
||||
out and back in, for each folder. May be it can be done by a script.
|
||||
|
||||
FirstClass releases prior to release 12 do not shows the "Sent"
|
||||
folder in IMAP but FirstClass release 12 shows it.
|
||||
I advice you to upgrade to FirstClass release 12 before leaving it
|
||||
with imapsync or another imap tool.
|
||||
|
||||
Here is a command line used to migrate from FirtClass release 12:
|
||||
|
||||
imapsync ... \
|
||||
--tmpdir /var/tmp --usecache \
|
||||
--useheader Message-ID \
|
||||
--idatefromheader \
|
||||
--addheader \
|
||||
--regextrans2 "s,(/|^) +,\$1,g" --regextrans2 "s, +(/|$),\$1,g" \
|
||||
--regextrans2 "s/[\^]/_/g" \
|
||||
--regextrans2 "s/['\"\\\\]/_/g" \
|
||||
--regextrans2 "s,&AC8-,-,g" \
|
||||
--regextrans2 "s,&APg-,oe,g" \
|
||||
--noabletosearch
|
||||
|
||||
Special thanks to Kristian Wind for helping me to write this FAQ item.
|
||||
See also this worth reading discussion in a Zimbra forum:
|
||||
http://www.zimbra.com/forums/migration/20349-help-needed-migrating-firstclass.html
|
||||
|
||||
======================================================================
|
||||
Q. From XXX to FTGate
|
||||
|
||||
R. Do NOT use --usecache since new UIDs are not given by FTGate and also
|
||||
badly guessed by imapsync. UIDEXPUNGE does not work so use also
|
||||
--expunge2 when using --delete2
|
||||
|
||||
imapsync ... \
|
||||
--sep2 / --prefix2 "" \
|
||||
--useheader Message-Id \
|
||||
|
||||
|
||||
======================================================================
|
||||
Q: How can I write an .rpm with imapsync
|
||||
|
||||
|
@ -2149,7 +2254,7 @@ R. You'll find an RPM imapsync.spec file in the directory learn/rpm/
|
|||
https://svn.fysik.dtu.dk/projects/rpmbuild/trunk/SPECS/imapsync.spec
|
||||
It has been tested with imapsync 1.434 (May 2011) on CentOS5
|
||||
and RedHat RHEL5 Linux. (Thanks to Ole Holm Nielsen).
|
||||
This imapsync.spec is derivated from Neil Brown work in 2007.
|
||||
This imapsync.spec is coming from Neil Brown work in 2007.
|
||||
|
||||
=======================================================================
|
||||
Q. Where I can read up on the various IMAP RFCs?
|
||||
|
|
125
INSTALL
125
INSTALL
|
@ -1,17 +1,23 @@
|
|||
# $Id: INSTALL,v 1.33 2013/12/25 03:25:18 gilles Exp gilles $
|
||||
# $Id: INSTALL,v 1.38 2014/05/29 23:42:11 gilles Exp gilles $
|
||||
#
|
||||
# INSTALL file for imapsync
|
||||
# imapsync : IMAP sync and migrate tool.
|
||||
|
||||
INTRODUCTION
|
||||
------------
|
||||
============
|
||||
|
||||
imapsync works fine under any operating system with Perl and Perl modules (listed below).
|
||||
imapsync.exe works fine standalone under Windows XP, Vista, Seven, 20XX, either 32 or 64bit.
|
||||
|
||||
WINDOWS
|
||||
=======
|
||||
|
||||
Read the file README_Windows.txt
|
||||
|
||||
UNIX
|
||||
----
|
||||
====
|
||||
|
||||
This section doesn't concern Windows imapsync.exe users.
|
||||
|
||||
Purchase imapsync at
|
||||
http://imapsync.lamiral.info/
|
||||
|
@ -24,49 +30,6 @@ UNIX
|
|||
Go into the directory imapsync-x.xx and read the INSTALL file.
|
||||
You're already reading the INSTALL file.
|
||||
|
||||
WINDOWS
|
||||
-------
|
||||
|
||||
a) Simplest way:
|
||||
|
||||
- Buy imapsync.exe at http://imapsync.lamiral.info/
|
||||
|
||||
- Run imapsync.exe in a command prompt (execute cmd.exe)
|
||||
but I suggest the next process, I use it myself.
|
||||
|
||||
- Since it is simpler to edit a batch file with notepad than
|
||||
the command line in DOS mode:
|
||||
|
||||
a) Look at the batch file at
|
||||
http://imapsync.lamiral.info/examples/imapsync_example.bat
|
||||
b) Take it and put this batch file in the same directory as imapsync.exe
|
||||
c) Edit this batch file with notepad and replace the parameters
|
||||
with your own values
|
||||
d) Run the batch file with a double-click.
|
||||
|
||||
|
||||
b) Hard way. It is the hard way because it installs all software
|
||||
dependencies. The way for changing imapsync if needed.
|
||||
|
||||
- Get imapsync-x.xx.tgz
|
||||
- Install Perl if it isn't already installed.
|
||||
Strawberry Perl is a very good candidate
|
||||
http://strawberryperl.com/
|
||||
|
||||
- Use the command CPAN to install modules listed in the PREREQUISITES section.
|
||||
There is also a batch file that does this install for you
|
||||
It is called install_modules.bat available at
|
||||
http://imapsync.lamiral.info/examples/install_modules.bat
|
||||
|
||||
c) How to build imapsync.exe?
|
||||
|
||||
- Do the hard stuff in b)
|
||||
- Run build_exe.bat (found in the tarball)
|
||||
|
||||
PREREQUISITES
|
||||
-------------
|
||||
|
||||
This section doesn't concern Windows imapsync.exe users.
|
||||
|
||||
You need :
|
||||
- Perl
|
||||
|
@ -113,45 +76,11 @@ Here is some individual module help:
|
|||
run imapsync with included Mail-IMAPClient-3.35/ wherever you
|
||||
unpacked the imapsync tarball.
|
||||
|
||||
- Digest::MD5
|
||||
perl -mDigest::MD5 -e ""
|
||||
|
||||
http://search.cpan.org/
|
||||
http://search.cpan.org/~gaas/Digest-MD5-2.52/
|
||||
To know the version you have on your system try :
|
||||
perl -mDigest::MD5 -e 'print $Digest::MD5::VERSION, "\n"'
|
||||
I use 2.39 (Ubuntu package)
|
||||
|
||||
- Term::ReadKey
|
||||
perl -mTerm::ReadKey -e ""
|
||||
|
||||
- IO::Socket::SSL
|
||||
perl -mIO::Socket::SSL -e ""
|
||||
|
||||
- Digest::HMAC_MD5
|
||||
Good for non plain text password over network.
|
||||
perl -mDigest::HMAC_MD5 -e ""
|
||||
|
||||
- Authen::NTLM
|
||||
perl -mAuthen::NTLM -e ""
|
||||
|
||||
- Time::HiRes
|
||||
perl -mTime::HiRes -e ""
|
||||
|
||||
- Data::Uniqid
|
||||
perl -mData::Uniqid -e ""
|
||||
|
||||
- URI::Escape
|
||||
perl -mURI::Escape -e ""
|
||||
|
||||
- File::Copy::Recursive
|
||||
perl -mFile::Copy::Recursive -e ""
|
||||
|
||||
Test everything in one command:
|
||||
Test all Perl modules dependency in one command:
|
||||
|
||||
perl -mMail::IMAPClient -mDigest::MD5 -mTerm::ReadKey -mIO::Socket::SSL \
|
||||
-mDigest::HMAC_MD5 -mAuthen::NTLM -e -mTime::HiRes \
|
||||
-mData::Uniqid -mURI::Escape ""
|
||||
-mData::Uniqid -mURI::Escape -mFile::Copy::Recursive -mIO::Tee ""
|
||||
|
||||
You can install easily those Perl modules in latest release via the
|
||||
following commands (with root permissions)
|
||||
|
@ -162,21 +91,22 @@ following commands (with root permissions)
|
|||
perl -MCPAN -e "install Digest::HMAC_MD5"
|
||||
perl -MCPAN -e "install URI::Escape"
|
||||
perl -MCPAN -e "install File::Copy::Recursive"
|
||||
perl -MCPAN -e "install IO::Tee"
|
||||
|
||||
perl -MCPAN -e "install Data::Uniqid"
|
||||
perl -MCPAN -e "install Authen::NTLM"
|
||||
|
||||
|
||||
You can also install them easily too by using the standard install
|
||||
command on your system if the packages have been made on it
|
||||
(so you may not have the latest but most of the time it
|
||||
doesn't care).
|
||||
You can also install them easily by using the standard install
|
||||
command on your system if the packages have been made on it.
|
||||
Doing so you may not have the latest release but most of the time
|
||||
it doesn't care.
|
||||
|
||||
Modules
|
||||
Authen::NTLM
|
||||
Data::Uniqid
|
||||
may be not available this distribution way since I haven't find them
|
||||
on Ubuntu nor on Mandriva.
|
||||
may be not available in the distribution way since I haven't find them
|
||||
on Ubuntu nor on Mandriva but Centos supports them.
|
||||
|
||||
On Debian/Ubuntu:
|
||||
|
||||
|
@ -186,6 +116,7 @@ On Debian/Ubuntu:
|
|||
aptitude install libdigest-hmac-perl # Digest::HMAC_MD5 Digest::HMAC_SHA1
|
||||
aptitude install liburi-perl # URI::Escape
|
||||
aptitude install libfile-copy-recursive-perl # File::Copy::Recursive
|
||||
aptitude install libio-tee-perl # IO::Tee
|
||||
|
||||
On Mandriva:
|
||||
|
||||
|
@ -195,6 +126,8 @@ On Mandriva:
|
|||
urpmi perl-Digest-HMAC # Digest::HMAC_MD5 Digest::HMAC_SHA1
|
||||
urpmi perl-URI # URI::Escape
|
||||
urpmi perl-File-Copy-Recursive # File::Copy::Recursive
|
||||
urpmi perl-IO-Tee # IO::Tee
|
||||
|
||||
|
||||
On CentOS (thanks to Ralf Hauber)
|
||||
|
||||
|
@ -204,17 +137,18 @@ On CentOS (thanks to Ralf Hauber)
|
|||
wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
|
||||
rpm -Uvh epel-release*rpm
|
||||
|
||||
yum install perl-Mail-IMAPClient
|
||||
yum install "perl(Term::ReadKey)"
|
||||
yum install "perl(Authen::NTLM)"
|
||||
yum install perl-Data-Uniqid
|
||||
yum install perl-File-Copy-Recursive
|
||||
yum install perl-Mail-IMAPClient # Mail::IMAPClient
|
||||
yum install "perl(Term::ReadKey)" # Term::ReadKey
|
||||
yum install "perl(Authen::NTLM)" # Authen::NTLM
|
||||
yum install perl-Data-Uniqid # Data::Uniqid
|
||||
yum install perl-File-Copy-Recursive # File::Copy::Recursive
|
||||
yum install perl-IO-Tee # IO::Tee
|
||||
|
||||
|
||||
INSTALLING on Unix
|
||||
------------------
|
||||
|
||||
To see what will be done, just run:
|
||||
To see what will be done, just run (you need the make command):
|
||||
|
||||
make -n install
|
||||
|
||||
|
@ -223,6 +157,9 @@ To install imapsync in /usr/bin/ and man page in /usr/share/man/man1/, just run
|
|||
make install
|
||||
|
||||
or copy the file imapsync where you want it to be.
|
||||
For example:
|
||||
|
||||
cp imapsync /usr/bin/
|
||||
|
||||
TESTING on Unix
|
||||
---------------
|
||||
|
|
48
Makefile
48
Makefile
|
@ -1,5 +1,5 @@
|
|||
|
||||
# $Id: Makefile,v 1.141 2014/02/13 03:18:50 gilles Exp gilles $
|
||||
# $Id: Makefile,v 1.149 2014/05/29 23:41:53 gilles Exp gilles $
|
||||
|
||||
.PHONY: help usage all
|
||||
|
||||
|
@ -33,7 +33,7 @@ DIST_NAME=imapsync-$(VERSION)
|
|||
DIST_FILE=$(DIST_NAME).tgz
|
||||
DEB_FILE=$(DIST_NAME).deb
|
||||
|
||||
VERSION=$(shell perl -I$(IMAPClient) ./imapsync --version)
|
||||
VERSION=$(shell perl -I$(IMAPClient) ./imapsync --version 2>/dev/null || cat VERSION)
|
||||
VERSION_EXE=$(shell cat ./VERSION_EXE)
|
||||
|
||||
HELLO=$(shell date;uname -a)
|
||||
|
@ -48,7 +48,7 @@ hello:
|
|||
all: ChangeLog README VERSION imapsync_elf_x86.bin imapsync.exe
|
||||
|
||||
testp :
|
||||
perl -c imapsync
|
||||
perl -c imapsync || { echo; echo "Read the INSTALL file to solve Perl module dependencies!"; exit 1; }
|
||||
|
||||
ChangeLog: imapsync
|
||||
rlog imapsync > ChangeLog
|
||||
|
@ -68,9 +68,9 @@ TUTORIAL.html: TUTORIAL.t2t
|
|||
|
||||
doc: README ChangeLog TUTORIAL.html GOOD_PRACTICES.html
|
||||
|
||||
.PHONY: clean clean_tilde clean_test doc
|
||||
.PHONY: clean clean_tilde clean_test doc clean_log
|
||||
|
||||
clean: clean_tilde clean_man
|
||||
clean: clean_tilde clean_man clean_log
|
||||
|
||||
clean_test:
|
||||
rm -f .test_3xx
|
||||
|
@ -78,6 +78,10 @@ clean_test:
|
|||
clean_tilde:
|
||||
rm -f *~
|
||||
|
||||
clean_log:
|
||||
rm -f LOG_imapsync/*.txt
|
||||
rm -f examples/LOG_imapsync/*.txt
|
||||
|
||||
.PHONY: install dist man
|
||||
|
||||
man: imapsync.1
|
||||
|
@ -149,8 +153,8 @@ testf: clean_test test
|
|||
|
||||
.PHONY: lfo upload_lfo public imapsync_cidone
|
||||
|
||||
.dosify_bat: W/*.bat examples/*.bat
|
||||
unix2dos W/*.bat examples/*.bat
|
||||
.dosify_bat: W/*.bat examples/*.bat build_exe.bat
|
||||
unix2dos W/*.bat examples/*.bat build_exe.bat
|
||||
touch .dosify_bat
|
||||
|
||||
dosify_bat: .dosify_bat
|
||||
|
@ -204,6 +208,15 @@ exe: imapsync build_exe.bat .dosify_bat
|
|||
scp Admin@c:'C:/msys/1.0/home/Admin/imapsync/imapsync.exe' .
|
||||
(date "+%s"| tr "\n" " "; echo -n "END " $(VERSION) ": "; date) >> W/.BUILD_EXE_TIME
|
||||
|
||||
zip: dosify_bat
|
||||
rm -rfv ../prepa_zip/imapsync_$(VERSION_EXE)/
|
||||
mkdir -p ../prepa_zip/imapsync_$(VERSION_EXE)/
|
||||
cp -av examples/imapsync_example.bat examples/sync_loop_windows.bat examples/file.txt ../prepa_zip/imapsync_$(VERSION_EXE)/
|
||||
for f in FAQ README ; do cp -av $$f ../prepa_zip/imapsync_$(VERSION_EXE)/$$f.txt ; done
|
||||
cp -av imapsync.exe README_Windows.txt ../prepa_zip/imapsync_$(VERSION_EXE)/
|
||||
unix2dos ../prepa_zip/imapsync_$(VERSION_EXE)/*.txt
|
||||
cd ../prepa_zip/ && rm -f ./imapsync_$(VERSION_EXE).zip && zip -r ./imapsync_$(VERSION_EXE).zip ./imapsync_$(VERSION_EXE)/
|
||||
scp ../prepa_zip/imapsync_$(VERSION_EXE).zip Admin@c:'C:/msys/1.0/home/Admin/'
|
||||
|
||||
|
||||
|
||||
|
@ -256,7 +269,7 @@ tarball: .tarball
|
|||
mkdir -p ../prepa_dist/$(DIST_NAME)
|
||||
rsync -aCvH --delete --omit-dir-times --exclude dist/ --exclude imapsync.exe ./ ../prepa_dist/$(DIST_NAME)/
|
||||
#rsync -av ./imapsync.exe ../prepa_dist/$(DIST_NAME)/
|
||||
cd ../prepa_dist && (tar czfv $(DIST_FILE) $(DIST_NAME) || tar czfv $(DIST_FILE) $(DIST_NAME))
|
||||
cd ../prepa_dist && tar czfv $(DIST_FILE) $(DIST_NAME)
|
||||
#ln -f ../prepa_dist/$(DIST_FILE) dist/
|
||||
cd ../prepa_dist && md5sum $(DIST_FILE) > $(DIST_FILE).md5.txt
|
||||
cd ../prepa_dist && md5sum -c $(DIST_FILE).md5.txt
|
||||
|
@ -271,7 +284,13 @@ DIST_PATH := ./dist/$(DIST_SECRET)
|
|||
lalala:
|
||||
echo $(DIST_SECRET)
|
||||
|
||||
dist: cidone test clean all perlcritic dist_prepa dist_prepa_exe
|
||||
dist: cidone test clean all perlcritic dist_prepa dist_zip README_dist.txt
|
||||
|
||||
md5:
|
||||
cd $(DIST_PATH)/ && md5sum *
|
||||
|
||||
sha:
|
||||
cd $(DIST_PATH)/ && sha512sum *
|
||||
|
||||
|
||||
dist_prepa: tarball dist_dir
|
||||
|
@ -289,12 +308,17 @@ dist_dir:
|
|||
ln -f ./dist/path_$(VERSION).txt ./dist/path_last.txt
|
||||
|
||||
|
||||
dist_prepa_exe: imapsync.exe
|
||||
mkdir -p $(DIST_PATH)
|
||||
dist_exe: imapsync.exe
|
||||
cp -a ./imapsync.exe $(DIST_PATH)/
|
||||
#cd $(DIST_PATH)/ && md5sum ./imapsync.exe > ./imapsync.exe.md5.txt
|
||||
#cd $(DIST_PATH)/ && md5sum -c ./imapsync.exe.md5.txt
|
||||
|
||||
dist_zip: zip
|
||||
cp -a ../prepa_zip/imapsync_$(VERSION_EXE).zip $(DIST_PATH)/
|
||||
|
||||
README_dist.txt: dist_dir
|
||||
sh W/tools/gen_README_dist > $(DIST_PATH)/README_dist.txt
|
||||
unix2dos $(DIST_PATH)/README_dist.txt
|
||||
|
||||
.PHONY: publish upload_ks ks
|
||||
|
||||
|
@ -324,7 +348,7 @@ publish: dist upload_ks ksa
|
|||
echo Now ou can do make ml
|
||||
|
||||
PUBLIC_FILES = ./ChangeLog ./NOLIMIT ./LICENSE ./CREDITS ./FAQ \
|
||||
./index.shtml ./INSTALL \
|
||||
./index.shtml ./INSTALL ./README_Windows.txt \
|
||||
./VERSION ./VERSION_EXE \
|
||||
./README ./TODO ./TUTORIAL.html ./GOOD_PRACTICES.html
|
||||
|
||||
|
|
49
README
49
README
|
@ -4,7 +4,7 @@ NAME
|
|||
More than 52 different IMAP server softwares supported with success, few
|
||||
failures.
|
||||
|
||||
$Revision: 1.584 $
|
||||
$Revision: 1.592 $
|
||||
|
||||
SYNOPSIS
|
||||
To synchronize imap account "foo" on "imap.truc.org" to imap account
|
||||
|
@ -96,6 +96,7 @@ USAGE
|
|||
[--split1] [--split2]
|
||||
[--reconnectretry1 <int>] [--reconnectretry2 <int>]
|
||||
[--noreleasecheck]
|
||||
[--releasecheck]
|
||||
[--pidfile <filepath>]
|
||||
[--tmpdir <dirpath>]
|
||||
[--version] [--help]
|
||||
|
@ -248,7 +249,7 @@ AUTHOR
|
|||
(see the license) over decades.
|
||||
|
||||
BUG REPORT GUIDELINES
|
||||
Help us to help you: follow the following guidelines.
|
||||
Help me to help you: follow the following guidelines.
|
||||
|
||||
Report any bugs or feature requests to the public mailing-list or to the
|
||||
author.
|
||||
|
@ -260,26 +261,28 @@ BUG REPORT GUIDELINES
|
|||
|
||||
Upgrade to last Mail-IMAPClient Perl module.
|
||||
http://search.cpan.org/dist/Mail-IMAPClient/ maybe the bug is already
|
||||
fixed.
|
||||
fixed there.
|
||||
|
||||
Make a good title with word "imapsync" in it (my spam filter won't
|
||||
filter it), Don't write an email title with just "imapsync" or
|
||||
"problem", a good title is made of keywords summary, not too long (one
|
||||
visible line).
|
||||
|
||||
Don't write imapsync in uppercase in the email title, I'll then know you
|
||||
run Windows and you haven't read this README yet.
|
||||
filter it), Try to write an email title with more words than just
|
||||
"imapsync" or "problem", a good title is made of keywords summary, but
|
||||
not too long (one visible line).
|
||||
|
||||
Help us to help you: in your report, please include:
|
||||
|
||||
- imapsync version.
|
||||
|
||||
- output given with --debug --debugimap near the failure point.
|
||||
Isolate a message or two in a folder 'BUG' and use
|
||||
- output near the first failures, a few lines before is good to get the context
|
||||
of the issue. First failures messages are often more significant than
|
||||
the last ones.
|
||||
|
||||
- if the issue is always related to the same messages, include the output
|
||||
with --debug --debugimap, near the failure point. For example,
|
||||
Isolate a buggy message or two in a folder 'BUG' and use
|
||||
|
||||
imapsync ... --folder 'BUG' --debug --debugimap
|
||||
|
||||
- imap server software on both side and their version number.
|
||||
- imap server softwares on both sides and their version number.
|
||||
|
||||
- imapsync with all the options you use, the full command line
|
||||
you use (except the passwords of course).
|
||||
|
@ -297,15 +300,19 @@ BUG REPORT GUIDELINES
|
|||
you run imapsync on a foreign host from the both.
|
||||
|
||||
Most of those values can be found as a copy/paste at the begining of the
|
||||
output, so a copy of the output is a very easy and very good debug
|
||||
report for me.
|
||||
output, so a carbon copy of the output is a very easy and very good
|
||||
debug report for me.
|
||||
|
||||
One time in your life, read the paper "How To Ask Questions The Smart
|
||||
Way" http://www.catb.org/~esr/faqs/smart-questions.html and then forget
|
||||
it.
|
||||
|
||||
IMAP SERVERS
|
||||
Failure stories reported with the following 3 imap servers:
|
||||
Failure stories reported in the past with the following 6 imap servers.
|
||||
Maybe last imapsync release can run successfully with them. Don't
|
||||
hesitate to have a try, It's been a long time since last failure
|
||||
occured, I will help you and make efforts to switch them to the success
|
||||
list, that's my job.
|
||||
|
||||
- MailEnable 1.54 (Proprietary) but MailEnable 4.23 is supported.
|
||||
- DBMail 0.9, 2.0.7 (GPL). But DBMail 1.2.1 is supported.
|
||||
|
@ -317,7 +324,7 @@ IMAP SERVERS
|
|||
- Hotmail since hotmail.com does not provide IMAP access
|
||||
- Outlook.com since outlook.com does not provide IMAP access
|
||||
|
||||
Success stories reported with the following 57 imap servers (software
|
||||
Success stories reported with the following 62 imap servers (software
|
||||
names are in alphabetic order):
|
||||
|
||||
- 1und1 H mimap1 84498 [host1] H mibap4 95231 [host1]
|
||||
|
@ -349,6 +356,8 @@ IMAP SERVERS
|
|||
- Dovecot 0.99.10.4, 0.99.14, 0.99.14-8.fc4, 1.0-0.beta2.7,
|
||||
1.0.0 [dest/source] (LGPL) (http://www.dovecot.org/)
|
||||
- Eudora WorldMail v2
|
||||
- FirtClass 9 [host1] Read the FAQ! (http://www.firstclass.com/)
|
||||
- FTGate (http://www.ftgate.com/)
|
||||
- Fusemail imap.fusemail.net:143 (https://www.fusemail.com/).
|
||||
- Gimap (Gmail imap)
|
||||
- GMX IMAP4 StreamProxy.
|
||||
|
@ -443,9 +452,11 @@ HUGE MIGRATION
|
|||
--host1 imap.side1.org --user1 %%G --password1 %%H ^
|
||||
--host2 imap.side2.org --user2 %%I --password2 %%J ...
|
||||
|
||||
The ... have to be replaced by nothing or any imapsync option.
|
||||
The ... have to be replaced by nothing or any imapsync option. Welcome
|
||||
in shell programming !
|
||||
|
||||
Welcome in shell programming !
|
||||
You will find already written scripts at
|
||||
http://imapsync.lamiral.info/examples/
|
||||
|
||||
Hacking
|
||||
Feel free to hack imapsync as the NOLIMIT license permits it.
|
||||
|
@ -472,5 +483,5 @@ SIMILAR SOFTWARES
|
|||
|
||||
Feedback (good or bad) will often be welcome.
|
||||
|
||||
$Id: imapsync,v 1.584 2014/02/05 00:40:59 gilles Exp gilles $
|
||||
$Id: imapsync,v 1.592 2014/05/22 10:03:17 gilles Exp gilles $
|
||||
|
||||
|
|
103
README_Windows.txt
Normal file
103
README_Windows.txt
Normal file
|
@ -0,0 +1,103 @@
|
|||
# $Id: README_Windows.txt,v 1.4 2014/05/29 23:41:41 gilles Exp gilles $
|
||||
#
|
||||
# README_Windows.txt file for imapsync
|
||||
# imapsync : IMAP sync and migrate tool.
|
||||
|
||||
WINDOWS
|
||||
=======
|
||||
|
||||
Two ways to install and use imapsync on Windows systems: A) or B).
|
||||
|
||||
Standard users should only take the A) way.
|
||||
|
||||
Developpers, users that want to build their own imapsync.exe
|
||||
or modify it, have to consider the B) way.
|
||||
|
||||
A) Simplest way
|
||||
---------------
|
||||
|
||||
A.1) Get imapsync.
|
||||
|
||||
Buy imapsync at http://imapsync.lamiral.info/
|
||||
You'll then have access to a zip archive file named imapsync_1.xxx.zip
|
||||
where 1.xxx is the imapsync release number.
|
||||
|
||||
A.2) Extract the zip file in a folder where you'll work with imapsync
|
||||
|
||||
You can work on the Desktop since the zip file extraction creates
|
||||
a uniq folder named imapsync_1.xxx (where 1.xxx is the imapsync
|
||||
release number).
|
||||
|
||||
A.3) Check the folder
|
||||
|
||||
In the folder extracted imapsync_1.xxx you see 6 files:
|
||||
|
||||
* README_Windows.txt is the current file you are reading
|
||||
* imapsync_example.bat is a batch file example you will copy and edit
|
||||
* sync_loop_windows.bat is a batch file example for syncing many accounts
|
||||
* FAQ.txt contains many useful tips,
|
||||
FAQ is a must read when something goes wrong.
|
||||
* README.txt imapsync general documentation.
|
||||
* imapsync.exe is the imapsync binary. You don't have to run it directly.
|
||||
|
||||
You can copy or rename imapsync_example.bat as you wish as long as
|
||||
its extension remains ".bat". On Windows systems .bat extension
|
||||
means "I'm a batch script". Same thing for sync_loop_windows.bat.
|
||||
The batch scripts have to stay with imapsync.exe because
|
||||
of the way they call it, they use ".\imapsync.exe", so
|
||||
let them be in the same directory.
|
||||
|
||||
For the rest of this documentation I assume you copied
|
||||
imapsync_example.bat to a file named imapsync_stuff.bat
|
||||
|
||||
A.4) Edit the batch file
|
||||
|
||||
Edit imapsync_stuff.bat and change the values with yours.
|
||||
In order to edit it you have do a right click on it and select "modify"
|
||||
in the list presented in the small window menu.
|
||||
Notepad is a good editor to modify it,
|
||||
Office Word is not good for that job.
|
||||
|
||||
File FAQ.txt contains many tips and special options sometimes
|
||||
needed by specific imap server softwares like Exchange or Gmail.
|
||||
|
||||
A.5) Run the batch file
|
||||
|
||||
To run imapsync with your values just double-clic on
|
||||
the batch file imapsync_example.bat
|
||||
|
||||
You do not need to have administrator priviledge to run imapsync.
|
||||
|
||||
A.6) Loop on A.5) A.6)
|
||||
|
||||
Loop the process of editing and running imapsync until
|
||||
you solve all issues and all values suit your needs.
|
||||
|
||||
A.7) Look the sync running. You can abort it at any time with a ctrl-c.
|
||||
|
||||
A.8) When the sync is finished you can find the whole log of the output
|
||||
in the folder named "LOG_imapsync", the logfile name is based
|
||||
on the launching date and hour and the user2 parameter, one logfile per run.
|
||||
The logfile name is printed at the end of the imapsync run.
|
||||
If you do not want logging in a file use option --nolog
|
||||
|
||||
|
||||
B) Hard way. It is the hard way because it installs all software
|
||||
dependencies. This is the way for modifying imapsync if needed.
|
||||
|
||||
- Get imapsync-x.xx.tgz
|
||||
|
||||
- Install Perl if it isn't already installed.
|
||||
Strawberry Perl is a very good candidate
|
||||
http://strawberryperl.com/
|
||||
|
||||
- Use the command CPAN to install modules listed in the PREREQUISITES section.
|
||||
There is also a batch file that does this install for you
|
||||
It is called install_modules.bat available at
|
||||
http://imapsync.lamiral.info/examples/install_modules.bat
|
||||
|
||||
c) How to build imapsync.exe?
|
||||
|
||||
- Do the hard stuff in B)
|
||||
- Run build_exe.bat (found in the tarball)
|
||||
|
6
README_dist.txt
Normal file
6
README_dist.txt
Normal file
|
@ -0,0 +1,6 @@
|
|||
|
||||
imapsync-1.592.tgz is for Unix and Mac users.
|
||||
|
||||
imapsync-1.592.zip is for Windows users.
|
||||
|
||||
the file script imapsync for a fast upgrade on Unix.
|
33
TODO
33
TODO
|
@ -1,5 +1,5 @@
|
|||
#!/bin/cat
|
||||
# $Id: TODO,v 1.124 2013/12/25 03:04:53 gilles Exp gilles $
|
||||
# $Id: TODO,v 1.126 2014/05/21 01:15:47 gilles Exp gilles $
|
||||
|
||||
TODO file for imapsync
|
||||
----------------------
|
||||
|
@ -17,12 +17,9 @@ http://www.yippiemove.com/
|
|||
http://www.migrationwiz.com/
|
||||
http://www.microsoft.com/download/en/details.aspx?id=1329 "Microsoft Transporter Suite"
|
||||
|
||||
Write --disarm_read_receipts that does:
|
||||
--regexmess 's{\A(.*?(?! ^$))^Disposition-Notification-To:(.*?)$}{$1X-Disposition-Notification-To:$2}igxms'
|
||||
May be apply it only to UNSEEN messages.
|
||||
|
||||
Write --max_messages_per_second and --max_bytes_per_second for staying under Microsoft's throttling policies.
|
||||
Add an option to remove empty folders on host1, except INBOX.
|
||||
|
||||
Apply --disarmreadreceipts only to UNSEEN messages.
|
||||
|
||||
Convert folder names to utf-8 and print them next to the uft-7 ones.
|
||||
Look at imapsync/W/learn/
|
||||
|
@ -76,9 +73,6 @@ Does \lalala can be forbidden (courier does a
|
|||
with
|
||||
* OK [PERMANENTFLAGS (\* \Draft \Answered \Flagged \Deleted \Seen)] Limited
|
||||
|
||||
Add an option to log both on screen and append to a file.
|
||||
At least document the tee command solution (Unix and Windows)
|
||||
|
||||
Suggestion: it's very difficult to track down messages which are behaving
|
||||
funny during the sync. It would be great - and presumably easy to code -
|
||||
to have an option to have imapsync display e.g. the subject of an
|
||||
|
@ -117,8 +111,6 @@ Take a look at Mail::IMAPTalk
|
|||
Simon Bertrang said "way better performance, less problems, easier to use and no
|
||||
issues so far". Sounds good!
|
||||
|
||||
Add an option to implement the faq entry about copying a contact folder.
|
||||
|
||||
imapsync doesn't report well. It should says "I had
|
||||
to sync 123 messages but I could transfer only 99 messages"
|
||||
Maybe count messages not transfered because they're dupplicate.
|
||||
|
@ -150,9 +142,6 @@ is changing and have it replace the domain in all user names that are
|
|||
related to ACLs.
|
||||
See patches/imapsync-acls-users
|
||||
|
||||
Use examine() instead of select() in --dry mode.
|
||||
Add a method doing the switch automagicaly.
|
||||
|
||||
Add --verbose from Kjetil jumbo patch.
|
||||
|
||||
Read the IMAP RFC http://www.faqs.org/rfcs/rfc3501.html
|
||||
|
@ -167,6 +156,22 @@ http://asg.web.cmu.edu/cyrus/download/imapd/altnamespace.html
|
|||
|
||||
===========================================================================
|
||||
|
||||
DONE. Add options --log and --logfile to log both on screen and to a file.
|
||||
DONE. Document the tee command solution (Unix and Windows) in the FAQ.
|
||||
|
||||
NEVER. Add an option to implement the faq entry about copying a contact folder.
|
||||
(write an dedicated software instead!)
|
||||
|
||||
NEVER. Use examine() instead of select() in --dry mode.
|
||||
Add a method doing the switch automagicaly.
|
||||
|
||||
DONE. Write --disarmreadreceipts that does:
|
||||
--regexmess 's{\A(.*?(?! ^$))^Disposition-Notification-To:(.*?)$}{$1X-Disposition-Notification-To:$2}igxms'
|
||||
|
||||
DONE. With --foldersizes make the listing on host2 independent of case
|
||||
(avoid "not yet created" if the folder exists in another case string)
|
||||
|
||||
DONE. Write --maxmessagespersecond and --maxbytespersecond for staying under Microsoft's throttling policies.
|
||||
|
||||
DONE. Inform about --addheader when the problem occurs "(no wanted headers so we ignore this message)"
|
||||
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
1.584
|
||||
1.592
|
||||
|
|
|
@ -1 +1 @@
|
|||
1.584
|
||||
1.592
|
||||
|
|
|
@ -269,3 +269,21 @@
|
|||
1390875240 END 1.582 : mardi 28 janvier 2014, 03:14:00 (UTC+0100)
|
||||
1391561330 BEGIN 1.584 : mercredi 5 février 2014, 01:48:50 (UTC+0100)
|
||||
1391562789 END 1.584 : mercredi 5 février 2014, 02:13:09 (UTC+0100)
|
||||
1399288404 BEGIN 1.586 : lundi 5 mai 2014, 13:13:24 (UTC+0200)
|
||||
1399655068 BEGIN 1.587 : vendredi 9 mai 2014, 19:04:28 (UTC+0200)
|
||||
1399657515 END 1.587 : vendredi 9 mai 2014, 19:45:15 (UTC+0200)
|
||||
1399729631 BEGIN 1.587 : samedi 10 mai 2014, 15:47:11 (UTC+0200)
|
||||
1399730345 END 1.587 : samedi 10 mai 2014, 15:59:05 (UTC+0200)
|
||||
1400630617 BEGIN 1.590 : mercredi 21 mai 2014, 02:03:37 (UTC+0200)
|
||||
1400639261 BEGIN 1.590 : mercredi 21 mai 2014, 04:27:41 (UTC+0200)
|
||||
1400640226 END 1.590 : mercredi 21 mai 2014, 04:43:46 (UTC+0200)
|
||||
1400722992 BEGIN 1.591 : jeudi 22 mai 2014, 03:43:12 (UTC+0200)
|
||||
1400723946 END 1.591 : jeudi 22 mai 2014, 03:59:06 (UTC+0200)
|
||||
1400754149 BEGIN 1.592 : jeudi 22 mai 2014, 12:22:29 (UTC+0200)
|
||||
1400755228 END 1.592 : jeudi 22 mai 2014, 12:40:28 (UTC+0200)
|
||||
1401188766 BEGIN 1.592 : mardi 27 mai 2014, 13:06:06 (UTC+0200)
|
||||
1401190037 END 1.592 : mardi 27 mai 2014, 13:27:17 (UTC+0200)
|
||||
1401197283 BEGIN 1.592 : mardi 27 mai 2014, 15:28:03 (UTC+0200)
|
||||
1401227679 BEGIN 1.592 : mardi 27 mai 2014, 23:54:39 (UTC+0200)
|
||||
1401262215 END 1.592 : mercredi 28 mai 2014, 09:30:15 (UTC+0200)
|
||||
1401407642 BEGIN 1.592 : vendredi 30 mai 2014, 01:54:02 (UTC+0200)
|
||||
|
|
|
@ -7,7 +7,8 @@ my $t = Unicode::IMAPUtf7->new();
|
|||
|
||||
while (<>) {
|
||||
chomp ;
|
||||
push( @result, sprintf( "%33s %s\n", $_, $t->decode($_) ) ) ;
|
||||
#push( @result, sprintf( "%33s %s\n", $_, $t->decode($_) ) ) ;
|
||||
push( @result, sprintf( "%s\n", $t->decode($_) ) ) ;
|
||||
}
|
||||
|
||||
print @result ;
|
||||
|
|
8
W/learn/log.txt
Normal file
8
W/learn/log.txt
Normal file
|
@ -0,0 +1,8 @@
|
|||
print 01
|
||||
warn 02
|
||||
print 03
|
||||
warn 04
|
||||
warn 05
|
||||
print 06
|
||||
print 07
|
||||
warn 08
|
25
W/learn/tee_log
Executable file
25
W/learn/tee_log
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
|
||||
use warnings ;
|
||||
use strict ;
|
||||
|
||||
use IO::Tee;
|
||||
my $log_filename = "log.txt";
|
||||
my $log_filehandle;
|
||||
open( $log_filehandle, '>>', $log_filename )
|
||||
or die("Can't open $log_filename for append: $!");
|
||||
my $tee = IO::Tee->new( $log_filehandle, \*STDOUT );
|
||||
*STDERR = *$tee{IO};
|
||||
select $tee;
|
||||
|
||||
print "print 01\n" ;
|
||||
warn "warn 02\n" ;
|
||||
print "print 03\n" ;
|
||||
warn "warn 04\n" ;
|
||||
warn "warn 05\n" ;
|
||||
print "print 06\n" ;
|
||||
print "print 07\n" ;
|
||||
warn "warn 08\n" ;
|
||||
|
||||
exit ;
|
15
W/learn/tee_log.bat
Normal file
15
W/learn/tee_log.bat
Normal file
|
@ -0,0 +1,15 @@
|
|||
REM
|
||||
REM scp tee_log tee_log.bat Admin@c:'C:/msys/1.0/home/Admin/imapsync/'
|
||||
|
||||
perl -MCPAN -e "install IO::Tee"
|
||||
perl ./tee_log
|
||||
|
||||
PAUSE
|
||||
|
||||
pp -o tee_log.exe -M IO::Tee ./tee_log
|
||||
|
||||
PAUSE
|
||||
|
||||
./tee_log.exe
|
||||
|
||||
|
31
W/paypal_reply/Makefile
Normal file
31
W/paypal_reply/Makefile
Normal file
|
@ -0,0 +1,31 @@
|
|||
|
||||
|
||||
#
|
||||
|
||||
help:
|
||||
@echo " You can do :"
|
||||
@echo "make test"
|
||||
|
||||
.PHONY: test test_paypal_build_reply
|
||||
|
||||
test: test_paypal_build_reply
|
||||
|
||||
test_init: test_paypal_build_reply_init
|
||||
|
||||
test_paypal_build_reply_init:
|
||||
./paypal_build_reply /g/var/paypal_build_reply/msg-5088-3.txt /g/var/paypal_build_reply/_1395313727_30838_paypal_com_ > /g/var/paypal_build_reply/t01_paypal_build_reply_support_ref.out
|
||||
./paypal_build_reply /g/var/paypal_build_reply/msg-4425-3.txt /g/var/paypal_build_reply/_1396257031_22182_paypal_com_ > /g/var/paypal_build_reply/t01_paypal_build_reply_software_ref.out
|
||||
./paypal_build_reply --debug /g/var/paypal_build_reply/msg-5088-3.txt /g/var/paypal_build_reply/_1395313727_30838_paypal_com_ > /g/var/paypal_build_reply/t01_paypal_build_reply_support_debug_ref.out
|
||||
./paypal_build_reply --debug /g/var/paypal_build_reply/msg-4425-3.txt /g/var/paypal_build_reply/_1396257031_22182_paypal_com_ > /g/var/paypal_build_reply/t01_paypal_build_reply_software_debug_ref.out
|
||||
|
||||
|
||||
test_paypal_build_reply:
|
||||
./paypal_build_reply /g/var/paypal_build_reply/msg-5088-3.txt /g/var/paypal_build_reply/_1395313727_30838_paypal_com_ > /g/var/paypal_build_reply/t01_paypal_build_reply_support_new.out
|
||||
diff /g/var/paypal_build_reply/t01_paypal_build_reply_support_ref.out /g/var/paypal_build_reply/t01_paypal_build_reply_support_new.out
|
||||
./paypal_build_reply /g/var/paypal_build_reply/msg-4425-3.txt /g/var/paypal_build_reply/_1396257031_22182_paypal_com_ > /g/var/paypal_build_reply/t01_paypal_build_reply_software_new.out
|
||||
diff /g/var/paypal_build_reply/t01_paypal_build_reply_software_ref.out /g/var/paypal_build_reply/t01_paypal_build_reply_software_new.out
|
||||
./paypal_build_reply --debug /g/var/paypal_build_reply/msg-5088-3.txt /g/var/paypal_build_reply/_1395313727_30838_paypal_com_ > /g/var/paypal_build_reply/t01_paypal_build_reply_support_debug_new.out
|
||||
diff /g/var/paypal_build_reply/t01_paypal_build_reply_support_debug_ref.out /g/var/paypal_build_reply/t01_paypal_build_reply_support_debug_new.out
|
||||
./paypal_build_reply --debug /g/var/paypal_build_reply/msg-4425-3.txt /g/var/paypal_build_reply/_1396257031_22182_paypal_com_ > /g/var/paypal_build_reply/t01_paypal_build_reply_software_debug_new.out
|
||||
diff /g/var/paypal_build_reply/t01_paypal_build_reply_software_debug_ref.out /g/var/paypal_build_reply/t01_paypal_build_reply_software_debug_new.out
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# $Id: memo,v 1.14 2013/04/29 08:15:35 gilles Exp gilles $
|
||||
# $Id: memo,v 1.16 2014/05/01 22:08:06 gilles Exp $
|
||||
|
||||
|
||||
echo paypal_bilan_todo
|
||||
|
@ -28,8 +28,139 @@ Europe a un autre assujetti : Article 262 ter => Exoneration
|
|||
EOF
|
||||
}
|
||||
|
||||
echo paypal_bilan_licence_support_same_button_04_2014_04_csv
|
||||
paypal_bilan_licence_support_same_button_04_2014_04_csv() {
|
||||
# DID output diff between paypal_bilan_1.78 and next
|
||||
(
|
||||
#set -x
|
||||
perl -c /g/public_html/imapsync/W/paypal_reply/paypal_bilan || return 1
|
||||
cd /g/var/paypal_bilan_A_B_C/
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan_1.78 \
|
||||
--debug --debug_csv --debug_email --details --debug_invoice \
|
||||
--dir_invoices /g/var/paypal_invoices_dev --write_invoices --first_in 30001 \
|
||||
2014_04.csv \
|
||||
> 2014_04.out1 2>&1
|
||||
|
||||
echo paypal_bilan_tva_taux_20
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan \
|
||||
--debug --debug_csv --debug_email --details --debug_invoice \
|
||||
--dir_invoices /g/var/paypal_invoices_dev --write_invoices --first_in 30001 \
|
||||
2014_04.csv \
|
||||
> 2014_04.out2 2>&1
|
||||
|
||||
echo diff 2014_04.out1 2014_04.out2
|
||||
diff 2014_04.out1 2014_04.out2
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
||||
echo paypal_bilan_licence_support_same_button_03_A_B_several_csv
|
||||
paypal_bilan_licence_support_same_button_03_A_B_several_csv() {
|
||||
# DID output diff between paypal_bilan_1.78 and next
|
||||
(
|
||||
#set -x
|
||||
perl -c /g/public_html/imapsync/W/paypal_reply/paypal_bilan || return 1
|
||||
cd /g/var/paypal_bilan_A_B_C/
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan_1.78 \
|
||||
--debug --debug_csv --debug_email --details --debug_invoice \
|
||||
--dir_invoices /g/var/paypal_invoices_dev --write_invoices --first_in 20001 \
|
||||
??_*.csv \
|
||||
> several.out1 2>&1
|
||||
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan \
|
||||
--debug --debug_csv --debug_email --details --debug_invoice \
|
||||
--dir_invoices /g/var/paypal_invoices_dev --write_invoices --first_in 20001 \
|
||||
??_*.csv \
|
||||
> several.out2 2>&1
|
||||
|
||||
echo diff several.out1 several.out2
|
||||
diff several.out1 several.out2
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
||||
echo paypal_bilan_licence_support_same_button_02_A_B_one_line
|
||||
paypal_bilan_licence_support_same_button_02_A_B_one_line() {
|
||||
# DID output diff between paypal_bilan_1.78 and next
|
||||
(
|
||||
#set -x
|
||||
perl -c /g/public_html/imapsync/W/paypal_reply/paypal_bilan || return 1
|
||||
cd /g/var/paypal_bilan_A_B_C/
|
||||
for csv in ??_*.csv ; do
|
||||
b=`basename $csv .csv`
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan_1.78 \
|
||||
--debug --debug_csv --debug_email --details --debug_invoice \
|
||||
--dir_invoices /g/var/paypal_invoices_dev --write_invoices --first_in 10001 \
|
||||
$b.csv \
|
||||
> $b.out1 2>&1
|
||||
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan \
|
||||
--debug --debug_csv --debug_email --details --debug_invoice \
|
||||
--dir_invoices /g/var/paypal_invoices_dev --write_invoices --first_in 10001 \
|
||||
$b.csv \
|
||||
> $b.out2 2>&1
|
||||
|
||||
echo diff $b.out1 $b.out2
|
||||
diff $b.out1 $b.out2
|
||||
done
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
echo paypal_bilan_licence_support_same_button_01_ALL_before_B_C
|
||||
paypal_bilan_licence_support_same_button_01_ALL_before_B_C() {
|
||||
# DID output diff between paypal_bilan_1.77 and next
|
||||
(
|
||||
set -x
|
||||
perl -c /g/public_html/imapsync/W/paypal_reply/paypal_bilan || return 1
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan_1.77 --bnc --debug --details --debug_email --debug_invoice --first_in 147 \
|
||||
--avoid_numbers '292 293 643 644 731 732 1093
|
||||
1330 1331 1332 1333 1334 1652 1653 2131 2132 2295 2296 2297 2298
|
||||
2625 2626 2970 2971 2972 3093' \
|
||||
/g/paypal/paypal_201[01234]_??_complet.csv \
|
||||
> /g/var/paypal_bilan/tests/paypal_invoice.out1 2>&1
|
||||
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --bnc --debug --details --debug_email --debug_invoice --first_in 147 \
|
||||
--avoid_numbers '292 293 643 644 731 732 1093
|
||||
1330 1331 1332 1333 1334 1652 1653 2131 2132 2295 2296 2297 2298
|
||||
2625 2626 2970 2971 2972 3093' \
|
||||
/g/paypal/paypal_201[01234]_??_complet.csv \
|
||||
> /g/var/paypal_bilan/tests/paypal_invoice.out2 2>&1
|
||||
|
||||
echo diff /g/var/paypal_bilan/tests/paypal_invoice.out1 /g/var/paypal_bilan/tests/paypal_invoice.out2
|
||||
diff /g/var/paypal_bilan/tests/paypal_invoice.out1 /g/var/paypal_bilan/tests/paypal_invoice.out2
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
echo paypal_bilan_final_presentation_for_tva
|
||||
paypal_bilan_final_presentation_for_tva() {
|
||||
# DID output diff between paypal_bilan_1.72 and 1.73
|
||||
(
|
||||
set -x
|
||||
perl -c /g/public_html/imapsync/W/paypal_reply/paypal_bilan || return 1
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan_1.72 --bnc --debug --details --debug_invoice --first_in 147 \
|
||||
--avoid_numbers '292 293 643 644 731 732 1093
|
||||
1330 1331 1332 1333 1334 1652 1653 2131 2132 2295 2296 2297 2298
|
||||
2625 2626 2970 2971 2972 3093' \
|
||||
/g/paypal/paypal_201[01234]_??_complet.csv \
|
||||
> /g/var/paypal_bilan/tests/paypal_invoice.out1 2>&1
|
||||
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --bnc --debug --details --debug_invoice --first_in 147 \
|
||||
--avoid_numbers '292 293 643 644 731 732 1093
|
||||
1330 1331 1332 1333 1334 1652 1653 2131 2132 2295 2296 2297 2298
|
||||
2625 2626 2970 2971 2972 3093' \
|
||||
/g/paypal/paypal_201[01234]_??_complet.csv \
|
||||
> /g/var/paypal_bilan/tests/paypal_invoice.out2 2>&1
|
||||
|
||||
echo diff /g/var/paypal_bilan/tests/paypal_invoice.out1 /g/var/paypal_bilan/tests/paypal_invoice.out2
|
||||
diff /g/var/paypal_bilan/tests/paypal_invoice.out1 /g/var/paypal_bilan/tests/paypal_invoice.out2
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
#echo paypal_bilan_tva_taux_20
|
||||
paypal_bilan_tva_taux_20() {
|
||||
# DID output diff between paypal_bilan_1.70 and 1.71
|
||||
(
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# $Id: paypal_bilan,v 1.70 2014/01/17 15:27:11 gilles Exp gilles $
|
||||
# $Id: paypal_bilan,v 1.73 2014/04/26 16:59:32 gilles Exp $
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
@ -13,7 +13,7 @@ use Test::More 'no_plan' ;
|
|||
|
||||
die unless (utf8_supported_charset('ISO-8859-1'));
|
||||
|
||||
my $rcs = '$Id: paypal_bilan,v 1.70 2014/01/17 15:27:11 gilles Exp gilles $ ' ;
|
||||
my $rcs = '$Id: paypal_bilan,v 1.73 2014/04/26 16:59:32 gilles Exp $ ' ;
|
||||
$rcs =~ m/,v (\d+\.\d+)/ ;
|
||||
my $VERSION = ($1) ? $1: "UNKNOWN" ;
|
||||
|
||||
|
@ -156,19 +156,34 @@ my @invoice_suspended = sort { $a <=> $b } keys( %invoice_suspended ) ;
|
|||
my @invoice_refund = sort { $a <=> $b } keys( %invoice_refund ) ;
|
||||
|
||||
|
||||
print( "\n", "=" x 60, "\n" ) if $bnc ;
|
||||
print( "\n", "=" x 60, "\n" ) ;
|
||||
|
||||
|
||||
|
||||
print "USD banque $total_usd_received\n" ;
|
||||
my $total_usd_paypal_cost ;
|
||||
$total_usd_paypal_cost = sprintf('%2.2f', $total_usd_invoice - $total_usd_received ) ;
|
||||
print "USD received $total_usd_received\n" ;
|
||||
print "USD invoice $total_usd_invoice\n" ;
|
||||
my $total_eur_from_usd ;
|
||||
$total_eur_from_usd = sprintf('%2.2f', $total_usd_invoice / $usdeur ) ; # au 30 nov 2010 http://fr.finance.yahoo.com/devises/convertisseur/#from=EUR;to=USD;amt=1
|
||||
print "EUR from USD $total_eur_from_usd\n" ;
|
||||
print "EUR banque $total_eur_received\n" ;
|
||||
print "EUR invoice $total_eur_invoice\n" ;
|
||||
print "USD costs $total_usd_paypal_cost\n" ;
|
||||
|
||||
my $total_eur_invoice_from_usd ;
|
||||
my $total_eur_received_from_usd ;
|
||||
my $total_eur_paypal_cost_from_usd ;
|
||||
|
||||
# au 30 nov 2010 http://fr.finance.yahoo.com/devises/convertisseur/#from=EUR;to=USD;amt=1
|
||||
$total_eur_invoice_from_usd = sprintf('%2.2f', $total_usd_invoice / $usdeur ) ;
|
||||
$total_eur_received_from_usd = sprintf('%2.2f', $total_usd_received / $usdeur ) ;
|
||||
$total_eur_paypal_cost_from_usd = sprintf('%2.2f', $total_usd_paypal_cost / $usdeur ) ;
|
||||
|
||||
# EUR
|
||||
$total_eur_received = sprintf('%2.2f', $total_eur_received) ;
|
||||
$total_eur_invoice = sprintf('%2.2f', $total_eur_invoice) ;
|
||||
print "EUR invoice from USD $total_eur_invoice_from_usd\n" ;
|
||||
print "EUR received from EUR $total_eur_received\n" ;
|
||||
print "EUR invoice from EUR $total_eur_invoice\n" ;
|
||||
|
||||
my $total_eur_invoice_from_eur_usd = $total_eur_invoice_from_usd + $total_eur_invoice ;
|
||||
my $total_eur_received_from_eur_usd = $total_eur_received_from_usd + $total_eur_received ;
|
||||
my $total_eur_paypal_cost = $total_eur_invoice - $total_eur_received + $total_eur_paypal_cost_from_usd ;
|
||||
|
||||
my $total_eur = $total_eur_from_usd + $total_eur_invoice ;
|
||||
|
||||
$total_HT_EUR_exo = sprintf('%2.2f', $total_HT_EUR_exo) ;
|
||||
$total_HT_EUR_ass = sprintf('%2.2f', $total_HT_EUR_ass) ;
|
||||
|
@ -178,15 +193,26 @@ $total_HT_EUR_sup = sprintf('%2.2f', $total_HT_EUR_sup) ;
|
|||
$total_TVA_EUR_sup = sprintf('%2.2f', $total_TVA_EUR_sup) ;
|
||||
$total_HT_EUR_sup_exo = sprintf('%2.2f', $total_HT_EUR_sup_exo) ;
|
||||
|
||||
$total_eur = sprintf('%2.2f', $total_eur) ;
|
||||
$total_eur_invoice_from_eur_usd = sprintf('%2.2f', $total_eur_invoice_from_eur_usd) ;
|
||||
$total_eur_paypal_cost = sprintf('%2.2f', $total_eur_paypal_cost) ;
|
||||
|
||||
print( "---- USD + EUR ----\n" ) ;
|
||||
print "EUR total invoice $total_eur_invoice_from_eur_usd\n" ;
|
||||
print "EUR total received $total_eur_received_from_eur_usd\n" ;
|
||||
print "EUR total paypal cost $total_eur_paypal_cost\n" ;
|
||||
print ;
|
||||
print( "---- Assujeti TVA ----\n" ) ;
|
||||
print "EUR total HT licen assuj $total_HT_EUR_ass (autres operations imposables)\n" ;
|
||||
#print "EUR total TVA licen assuj $total_TVA_EUR\n" ;
|
||||
print "EUR total HT supp assuj $total_HT_EUR_sup (ventes, prestations)\n" ;
|
||||
#print "EUR total TVA supp assuj $total_TVA_EUR_sup\n" ;
|
||||
|
||||
print( "---- Exonere TVA ----\n" ) ;
|
||||
print "EUR total HT licen exo $total_HT_EUR_exo (autres operations NON imposables)\n" ;
|
||||
print "EUR total HT suppo exo $total_HT_EUR_sup_exo (autres operations NON imposables)\n" ;
|
||||
|
||||
print( "---- Invoices ----\n" ) ;
|
||||
|
||||
print "EUR total $total_eur\n" ;
|
||||
print "EUR total HT exo $total_HT_EUR_exo\n" ;
|
||||
print "EUR total HT assuj $total_HT_EUR_ass\n" ;
|
||||
print "EUR total TVA $total_TVA_EUR\n" ;
|
||||
print "EUR total HT sup $total_HT_EUR_sup\n" ;
|
||||
print "EUR total TVA sup $total_TVA_EUR_sup\n" ;
|
||||
print "EUR total HT sup exo $total_HT_EUR_sup_exo\n" ;
|
||||
print "Nb invoice $nb_invoice ( from $first_invoice_paypal to $last_invoice )\n" ;
|
||||
print "Nb invoice canceled ($nb_invoice_canceled) @invoice_canceled\n" ;
|
||||
print "Nb invoice suspended ($nb_invoice_suspended) @invoice_suspended\n" ;
|
||||
|
@ -196,8 +222,8 @@ print "Have to send invoices @invoice_not_sent\n" if ( @invoice_not_sent ) ;
|
|||
|
||||
my $total_eur2 = $total_HT_EUR_exo + $total_HT_EUR_ass + $total_TVA_EUR + $total_HT_EUR_sup + $total_TVA_EUR_sup + $total_HT_EUR_sup_exo ;
|
||||
$total_eur2 = sprintf('%2.2f', $total_eur2) ;
|
||||
print "$total_eur != $total_eur2 = $total_HT_EUR_exo + $total_HT_EUR_ass + $total_TVA_EUR + $total_HT_EUR_sup + $total_TVA_EUR_sup + $total_HT_EUR_sup_exo\n"
|
||||
if ( $total_eur != $total_eur2 ) ;
|
||||
print "$total_eur_invoice_from_eur_usd != $total_eur2 = $total_HT_EUR_exo + $total_HT_EUR_ass + $total_TVA_EUR + $total_HT_EUR_sup + $total_TVA_EUR_sup + $total_HT_EUR_sup_exo\n"
|
||||
if ( $total_eur_invoice_from_eur_usd != $total_eur2 ) ;
|
||||
|
||||
sub parse_one_line_io {
|
||||
my $csv = shift ;
|
||||
|
@ -375,6 +401,7 @@ sub tests {
|
|||
tests_invoice_00000( ) ;
|
||||
#tests_exportbnc( ) ;
|
||||
tests_tva_rate( ) ;
|
||||
tests_tva_rate_str( ) ;
|
||||
}
|
||||
|
||||
sub compute_line {
|
||||
|
@ -1086,6 +1113,34 @@ sub tests_tva_rate {
|
|||
}
|
||||
|
||||
|
||||
sub tva_rate_str {
|
||||
my $date_aaaa_mm_jj = shift ;
|
||||
|
||||
if ( '2014_01_01' gt $date_aaaa_mm_jj ) {
|
||||
#print "tva_rate 0.196\n" ;
|
||||
return( '19,60\%' ) ;
|
||||
}
|
||||
|
||||
if ( '2014_01_01' le $date_aaaa_mm_jj ) {
|
||||
return( '20\%' ) ;
|
||||
}
|
||||
#print "tva_rate 0\n" ;
|
||||
return( '' ) ;
|
||||
}
|
||||
|
||||
sub tests_tva_rate_str {
|
||||
ok( '19,60\%' eq tva_rate_str( '2013_01_01' ), 'tva_rate_str: old 0.196' ) ;
|
||||
ok( '19,60\%' eq tva_rate_str( '2013_12_31' ), 'tva_rate_str: old 0.196' ) ;
|
||||
ok( '20,00\%' eq tva_rate_str( '2014_01_01' ), 'tva_rate_str: new 0.2' ) ;
|
||||
ok( '20,00\%' eq tva_rate_str( '2014_12_31' ), 'tva_rate_str: new 0.2' ) ;
|
||||
ok( '20,00\%' eq tva_rate_str( '2050_01_01' ), 'tva_rate_str: new 0.2' ) ;
|
||||
ok( '20,00\%' eq tva_rate_str( '2050_12_31' ), 'tva_rate_str: new 0.2' ) ;
|
||||
return( 0 ) ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
sub tva_line {
|
||||
my( $Devise, $Montant2, $Pays, $Nom_Option_1, $Valeur_Option_1, $Titre_de_l_objet, $Date ) = @_ ;
|
||||
my( $montant_HT_EUR_exo, $montant_HT_EUR_ass, $montant_TVA_EUR ) = ( 0, 0, 0 ) ;
|
||||
|
@ -1165,8 +1220,8 @@ sub tva_stuff {
|
|||
( 'France' eq $Pays )
|
||||
) {
|
||||
$priceHT = sprintf('%2.2f', $Hors_taxe / ( 1 + tva_rate( $date_aaaa_mm_jj ) ) ) ;
|
||||
$tvaFR = '19,60\%';
|
||||
$tvaEN = '';
|
||||
$tvaFR = tva_rate_str( $date_aaaa_mm_jj ) ;
|
||||
$tvaEN = '' ;
|
||||
$priceTVA = sprintf('%2.2f', $Hors_taxe / ( 1 + tva_rate( $date_aaaa_mm_jj ) ) * tva_rate( $date_aaaa_mm_jj ) ) ;
|
||||
$priceTTC = sprintf('%2.2f', $Hors_taxe) ;
|
||||
$HTorTTC = 'TTC' ;
|
1448
W/paypal_reply/paypal_bilan_1.74
Executable file
1448
W/paypal_reply/paypal_bilan_1.74
Executable file
File diff suppressed because it is too large
Load diff
1372
W/paypal_reply/paypal_bilan_1.75
Executable file
1372
W/paypal_reply/paypal_bilan_1.75
Executable file
File diff suppressed because it is too large
Load diff
1347
W/paypal_reply/paypal_bilan_1.76
Executable file
1347
W/paypal_reply/paypal_bilan_1.76
Executable file
File diff suppressed because it is too large
Load diff
1417
W/paypal_reply/paypal_bilan_1.77
Executable file
1417
W/paypal_reply/paypal_bilan_1.77
Executable file
File diff suppressed because it is too large
Load diff
1445
W/paypal_reply/paypal_bilan_1.78
Executable file
1445
W/paypal_reply/paypal_bilan_1.78
Executable file
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# $Id: paypal_build_invoices,v 1.63 2014/01/18 01:26:53 gilles Exp gilles $
|
||||
# $Id: paypal_build_invoices,v 1.71 2014/05/20 20:13:45 gilles Exp gilles $
|
||||
|
||||
# usage: sh paypal_build_invoices /g/var/paypal_invoices/????
|
||||
|
||||
|
@ -45,8 +45,13 @@ cp /home/gilles/public_html/AGIL/factures/000/facture_imapsync-000.tex /g/var/pa
|
|||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 2891 /g/paypal/paypal_2013_10_complet.csv
|
||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 2973 /g/paypal/paypal_2013_11_complet.csv
|
||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 3040 /g/paypal/paypal_2013_12_complet.csv
|
||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 3094 /g/paypal/paypal_2014_01_complet.csv
|
||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 3163 /g/paypal/paypal_2014_02_complet.csv
|
||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 3205 /g/paypal/paypal_2014_03_complet.csv
|
||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 3251 /g/paypal/paypal_2014_04_complet.csv
|
||||
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 3297 /g/paypal/paypal_2014_05_complet.csv
|
||||
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 3094 /g/paypal/paypal_2014_01_complet.csv
|
||||
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 147 /g/paypal/paypal_2010_11_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 214 /g/paypal/paypal_2010_12_complet.csv
|
||||
|
@ -86,9 +91,13 @@ cp /home/gilles/public_html/AGIL/factures/000/facture_imapsync-000.tex /g/var/pa
|
|||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 2891 /g/paypal/paypal_2013_10_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 2973 /g/paypal/paypal_2013_11_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 3040 /g/paypal/paypal_2013_12_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 3094 /g/paypal/paypal_2014_01_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 3163 /g/paypal/paypal_2014_02_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 3205 /g/paypal/paypal_2014_03_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 3251 /g/paypal/paypal_2014_04_complet.csv
|
||||
|
||||
set -x
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 3094 /g/paypal/paypal_2014_01_complet.csv
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 3297 /g/paypal/paypal_2014_05_complet.csv
|
||||
set +x
|
||||
|
||||
# La totale
|
||||
|
@ -96,25 +105,32 @@ set +x
|
|||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --bnc --debug \
|
||||
--first_in 147 --avoid_numbers '292 293 643 644 731 732 1093
|
||||
1330 1331 1332 1333 1334 1652 1653 2131 2132 2295 2296 2297 2298
|
||||
2625 2626 2970 2971 2972 3093' \
|
||||
2625 2626 2970 2971 2972 3093 3296' \
|
||||
/g/paypal/paypal_201?_??_complet.csv
|
||||
|
||||
set -v
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan \
|
||||
--first_in 147 --avoid_numbers '292 293 643 644 731 732 1093
|
||||
1330 1331 1332 1333 1334 1652 1653 2131 2132 2295 2296 2297 2298
|
||||
2625 2626 2970 2971 2972 3093' \
|
||||
2625 2626 2970 2971 2972 3093 3296' \
|
||||
/g/paypal/paypal_201?_??_complet.csv
|
||||
set +v
|
||||
|
||||
# 2012
|
||||
#echo 2012
|
||||
#set -v
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan \
|
||||
--first_in 1335 --usdeur 1.2952 --bnc --avoid_numbers '1652 1653 2131 2132 2295 2296 2297 2298' \
|
||||
--first_in 1335 --usdeur 1.2952 --avoid_numbers '1652 1653 2131 2132 2295 2296 2297 2298' \
|
||||
/g/paypal/paypal_2012_??_complet.csv
|
||||
#set +v
|
||||
|
||||
#echo 2013
|
||||
#set -v
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan \
|
||||
--first_in 2299 --avoid_numbers '2625 2626 2970 2971 2972' \
|
||||
/g/paypal/paypal_2013_??_complet.csv
|
||||
#set +v
|
||||
|
||||
|
||||
|
||||
echo 'sh paypal_build_invoices /g/var/paypal_invoices/3???'
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# $Id: paypal_build_reply,v 1.21 2013/03/27 14:42:59 gilles Exp gilles $
|
||||
# $Id: paypal_build_reply,v 1.26 2014/05/22 10:35:33 gilles Exp gilles $
|
||||
|
||||
use warnings;
|
||||
use strict;
|
||||
|
@ -28,22 +28,31 @@ usage() and exit if ($help or ! $numopt) ;
|
|||
$msg_id_file = $ARGV[1];
|
||||
$msg_id = firstline($msg_id_file);
|
||||
|
||||
$release = firstline( '/g/public_html/imapsync/VERSION' ) ;
|
||||
$release_exe = firstline( '/g/public_html/imapsync/VERSION_EXE' ) ;
|
||||
my $path_last = firstline( '/g/public_html/imapsync/dist/path_last.txt' ) ;
|
||||
|
||||
$url = "http://ks.lamiral.info/imapsync/dist/$path_last/" ;
|
||||
|
||||
|
||||
$debug and print "Hi!\n" ;
|
||||
|
||||
while(<>) {
|
||||
next if ( ! /^(.*Num.+ro de transaction.*)$/ );
|
||||
my @input = <> ;
|
||||
|
||||
while( my $line = shift @input ) {
|
||||
next if ( $line !~ /^(.*Num.+ro de transaction.*)$/ );
|
||||
$paypal_line = $1;
|
||||
$paypal_info = "===== Paypal id =====\n$paypal_line\n";
|
||||
$debug and print "$paypal_info" ;
|
||||
last;
|
||||
}
|
||||
while(<>) {
|
||||
if ( /^Vous avez re.*paiement d'un montant de (.*) de la part de (.*) \((.*)\)/) {
|
||||
while( my $line = shift @input ) {
|
||||
if ( $line =~ /^Vous avez re.*paiement d'un montant de (.*) de la part de (.*) \((.*)\)/) {
|
||||
($amount, $name, $email) = ($1, $2, $3);
|
||||
$debug and print "1 ($amount, $name, $email)\n" ;
|
||||
last;
|
||||
}
|
||||
if ( /^Vous avez re.*paiement d'un montant de (.*) de la part de (.*)/) {
|
||||
if ( $line =~ /^Vous avez re.*paiement d'un montant de (.*) de la part de (.*)/) {
|
||||
($amount, $name, $email) = ($1, "", $2);
|
||||
$debug and print "2 ($amount, $name, $email)\n" ;
|
||||
last;
|
||||
|
@ -51,58 +60,54 @@ while(<>) {
|
|||
}
|
||||
|
||||
|
||||
$release = firstline( '/g/public_html/imapsync/VERSION' ) ;
|
||||
$release_exe = firstline( '/g/public_html/imapsync/VERSION_EXE' ) ;
|
||||
my $path_last = firstline( '/g/public_html/imapsync/dist/path_last.txt' ) ;
|
||||
|
||||
$url = "http://ks.lamiral.info/imapsync/dist/$path_last/" ;
|
||||
|
||||
$debug and print "[$amount] [$name] [$email] [$paypal_line]\n";
|
||||
|
||||
$amount =~ /^.*?(\d+.*)/ ;
|
||||
my $amount_ascii = $1 || '' ;
|
||||
|
||||
while(<>) {
|
||||
if ( /^Acheteur/ ) {
|
||||
while( my $line = shift @input ) {
|
||||
if ( $line =~ /^Acheteur/ ) {
|
||||
$buyer .= "===== Acheteur =====\n";
|
||||
$debug and print "1 $buyer\n" ;
|
||||
last;
|
||||
}
|
||||
if ( /^Informations sur l'acheteur/ ) {
|
||||
if ( $line =~ /^Informations sur l'acheteur/ ) {
|
||||
$buyer .= "===== Acheteur =====\n";
|
||||
chomp( $name = <> );
|
||||
chomp( $name = shift @input );
|
||||
$buyer .= "$name\n" ;
|
||||
$debug and print "2 $buyer\n" ;
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
while(<>) {
|
||||
$buyer .= $_ if ( ! /^-----------------------------------/ );
|
||||
last if ( /^-----------------------------------/ );
|
||||
while( my $line = shift @input ) {
|
||||
$buyer .= $line if ( $line !~ /^-----------------------------------/ );
|
||||
last if ( $line =~ /^-----------------------------------/ );
|
||||
}
|
||||
$debug and print "3 $buyer\n" ;
|
||||
|
||||
while(<>) {
|
||||
$debug and print "Search Description [$_]\n" ;
|
||||
next if ( ! /Description..?:(.*)/ );
|
||||
while( my $line = shift @input ) {
|
||||
$debug and print "Search Description [$line]\n" ;
|
||||
next if ( $line !~ /Description..?:(.*)/ ) ;
|
||||
$object = $1 ;
|
||||
$description = "===== Details =====\n";
|
||||
$description .= $_;
|
||||
last;
|
||||
$description = "===== Details =====\n" ;
|
||||
$description .= $line ;
|
||||
last ;
|
||||
}
|
||||
$debug and print "[$object] [$description]\n";
|
||||
$debug and print "[$object] [$description]\n" ;
|
||||
|
||||
|
||||
while(<>) {
|
||||
$debug and print "LINE:$_" ;
|
||||
$description .= $_;
|
||||
last if ( /^Paiement envoy/ );
|
||||
last if ( /^N.*d'avis de r.*ception/ );
|
||||
while( my $line = shift @input ) {
|
||||
$debug and print "LINE:$line" ;
|
||||
$description .= $line;
|
||||
last if ( $line =~ /^Paiement envoy/ );
|
||||
last if ( $line =~ /^N.*d'avis de r.*ception/ );
|
||||
}
|
||||
|
||||
|
||||
my $address = 'gilles.lamiral@laposte.net';
|
||||
my $address2 = 'gilles@lamiral.info';
|
||||
my $rcstag = '$Id: paypal_build_reply,v 1.21 2013/03/27 14:42:59 gilles Exp gilles $';
|
||||
my $rcstag = '$Id: paypal_build_reply,v 1.26 2014/05/22 10:35:33 gilles Exp gilles $';
|
||||
|
||||
my $download_info = "You will find the latest imapsync.exe binary (release $release_exe)
|
||||
and the latest imapsync source code (release $release) at the following link:
|
||||
|
@ -110,55 +115,46 @@ $url" ;
|
|||
|
||||
my $next_releases =
|
||||
"Next imapsync releases will be available to you for lifetime without extra payment.
|
||||
You'll be subscribed to a newsletter [imapsync_update] announcing new releases.
|
||||
|
||||
You are subscribed to a newsletter [imapsync_update] announcing new releases.
|
||||
Just keep this message and ask for the new links in case you miss the newsletter.
|
||||
Ask me to be unsubscribed, you can also do it yourself at
|
||||
http://lists.lamiral.info/cgi-bin/mailman/listinfo/imapsync_update
|
||||
|
||||
Run imapsync without any argument to know if a new release is available.
|
||||
A permanent link to last release is http://imapsync.lamiral.info/paypal_return.shtml
|
||||
also written on the invoice you'll receive soon (I edit invoices once a week or on demand)." ;
|
||||
also written on the invoice you'll receive soon, I edit invoices once a week or on demand." ;
|
||||
|
||||
|
||||
my $thanks_software = "I thank you for buying and using imapsync,
|
||||
I wish you successful transfers!" ;
|
||||
|
||||
my $thanks_support = "I thank you for buying support and using imapsync,
|
||||
I wish you successful transfers, I will help you to succeed." ;
|
||||
|
||||
my $support_info = 'Now you have access to imapsync professional support.
|
||||
|
||||
You can contact me (Gilles LAMIRAL) by email or phone.
|
||||
my $support_info = 'For imapsync professional support,
|
||||
contact me (Gilles LAMIRAL) by email or phone at:
|
||||
|
||||
Email address: gilles.lamiral@laposte.net.
|
||||
Professionnal phone number: +33 951 84 42 42 (France)
|
||||
Mobile phone number: +33 620 79 76 06 (France).
|
||||
|
||||
I can call you back for free in many countries on landline telephone numbers
|
||||
I can call you back toll-free in many countries on landline telephone numbers
|
||||
and to mobile numbers in the United States and France. So do not hesitate
|
||||
to send me a note if you need vocal support.' ;
|
||||
|
||||
|
||||
my $thanks_software = "I thank you for buying and using imapsync,
|
||||
I wish you successful transfers!" ;
|
||||
|
||||
|
||||
my $text_software = "$download_info\n
|
||||
$next_releases\n
|
||||
$support_info\n
|
||||
You will receive an invoice soon.\n
|
||||
$thanks_software" ;
|
||||
|
||||
my $text_support = "$support_info\n
|
||||
You will receive an invoice soon.\n
|
||||
$thanks_support" ;
|
||||
|
||||
my $subject_software = "[imapsync download] imapsync release $release [$email]" ;
|
||||
|
||||
my $subject_support = "[imapsync support] imapsync release $release [$email]" ;
|
||||
my $subject_software = "[imapsync download] imapsync release $release [$amount_ascii from $email]" ;
|
||||
|
||||
my $subject ;
|
||||
|
||||
my $text ;
|
||||
if ( $object =~ m{imapsync support} ) {
|
||||
$text = $text_support ;
|
||||
$subject = $subject_support ;
|
||||
}else{
|
||||
$text = $text_software ;
|
||||
$subject = $subject_software ;
|
||||
}
|
||||
$text = $text_software ;
|
||||
$subject = $subject_software ;
|
||||
|
||||
|
||||
|
||||
my $message = <<EOM
|
||||
|
@ -178,7 +174,7 @@ $buyer
|
|||
$description
|
||||
==== Vendeur ====
|
||||
Gilles LAMIRAL
|
||||
4 La Billais
|
||||
La Billais
|
||||
35580 Baulon
|
||||
FRANCE
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
# $Id: paypal_run_dev,v 1.8 2013/02/08 14:58:47 gilles Exp gilles $
|
||||
# $Id: paypal_run_dev,v 1.10 2014/03/31 09:19:43 gilles Exp gilles $
|
||||
|
||||
set -e
|
||||
#set -x
|
||||
|
||||
# Add path to commands at home
|
||||
PATH=$PATH:/g/public_html/imapsync/W/paypal_reply
|
||||
PERL5LIB=/g/public_html/imapsync/W/Mail-IMAPClient-3.33/lib
|
||||
PERL5LIB=/g/public_html/imapsync/W/Mail-IMAPClient-3.35/lib
|
||||
export PERL5LIB
|
||||
|
||||
test -f /g/public_html/imapsync/W/paypal_reply/paypal_functions \
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# $Id: paypal_send_invoices,v 1.10 2013/11/17 06:36:39 gilles Exp gilles $
|
||||
# $Id: paypal_send_invoices,v 1.12 2014/05/27 11:16:15 gilles Exp gilles $
|
||||
|
||||
# usages:
|
||||
# sh paypal_send_invoices /g/var/paypal_invoices/147
|
||||
|
@ -36,10 +36,10 @@ send_invoice() {
|
|||
}
|
||||
more facture_message.txt
|
||||
echo '====== END of message ======'
|
||||
mailq
|
||||
test -f "SENT_TO_$email" || acroread facture_imapsync-${invoice}.pdf&
|
||||
echo "Send this invoice ${invoice} to $email?"
|
||||
read r < /dev/tty
|
||||
mailq
|
||||
echo SAID "[$r]"
|
||||
test X"$r" = Xy && {
|
||||
echo | mutt -H facture_message.txt -a facture_imapsync-${invoice}.pdf facture_imapsync-${invoice}.pdf.asc --
|
||||
|
@ -47,7 +47,7 @@ send_invoice() {
|
|||
}
|
||||
}
|
||||
|
||||
echo $0 '/g/var/paypal_invoices/2???'
|
||||
echo $0 '/g/var/paypal_invoices/3???'
|
||||
|
||||
for d in "$@"; do
|
||||
( send_invoice "$d" )
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<title>imapsync download</title>
|
||||
<meta name="generator" content="Bluefish 1.0.7"/>
|
||||
<meta name="author" content="Gilles LAMIRAL"/>
|
||||
<meta name="date" content="2013-04-18T15:52:05+0200"/>
|
||||
<meta name="date" content="2014-04-17T13:01:45+0200"/>
|
||||
<meta name="copyright" content=""/>
|
||||
<meta name="keywords" content=""/>
|
||||
<meta name="description" content=""/>
|
||||
|
@ -54,10 +54,18 @@ Ask for it if you need it before.</p>
|
|||
This current page will be updated to reflect the lastest release of imapsync.<br/>
|
||||
You will be soon subscribed to the newsletter announcing new releases (and only new releases).</p>
|
||||
|
||||
<p>To explain your <b>specific needs</b>, find <b>best solutions</b> for them, <b>avoid loosing time</b>, <br/>
|
||||
and then <b>succeed</b> your migration <b>quickly</b> you can buy
|
||||
<a href="../#buy_support"><b>professionnal support</b></a>.
|
||||
</p>
|
||||
|
||||
<p>For <b>professionnal support</b>, in order to explain your <b>specific needs</b>,
|
||||
find <b>best solutions</b> for them, <b>avoid loosing time</b>,
|
||||
and then <b>succeed</b> your migration <b>quickly</b>, <b>contact me</b>
|
||||
(Gilles LAMIRAL) by email or phone at:</p>
|
||||
<ul>
|
||||
<li>Email address: <b>gilles.lamiral@laposte.net</b>.</li>
|
||||
<li>Professionnal phone number: <b>+33 951 84 42 42</b> (in France) I can <b>call you back</b> toll-free in many countries.</li>
|
||||
<li>Mobile phone number: <b>+33 620 79 76 06</b> (in France).</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<p><b>I thank you</b> again for buying and using imapsync,<br/>
|
||||
<b>I wish you successful imap transfers!</b></p>
|
||||
|
@ -83,7 +91,7 @@ gilles.lamiral@laposte.net</p>
|
|||
<!--#config timefmt="%D" -->
|
||||
<!--#config timefmt="%A %B %d, %Y" -->
|
||||
<b>This document last modified on <!--#echo var="LAST_MODIFIED" --></b><br/>
|
||||
($Id: paypal_return.shtml,v 1.14 2013/04/18 13:53:25 gilles Exp gilles $)
|
||||
($Id: paypal_return.shtml,v 1.15 2014/05/21 01:22:13 gilles Exp gilles $)
|
||||
</p>
|
||||
|
||||
<!-- Google Code for Achat imapsync Conversion Page -->
|
||||
|
|
47
W/test.bat
47
W/test.bat
|
@ -1,11 +1,46 @@
|
|||
|
||||
REM $Id: test.bat,v 1.10 2012/12/22 20:00:12 gilles Exp gilles $
|
||||
REM $Id: test.bat,v 1.11 2014/05/22 10:15:45 gilles Exp gilles $
|
||||
|
||||
cd C:\msys\1.0\home\Admin\imapsync
|
||||
perl -mMail::IMAPClient -mDigest::MD5 -mTerm::ReadKey -mIO::Socket::SSL -mDate::Manip -mFile::Spec -mDigest::HMAC_MD5 -e ''
|
||||
cd /D %~dp0
|
||||
|
||||
@ECHO ==== Just load modules
|
||||
perl -mMail::IMAPClient -mDigest::MD5 -mTerm::ReadKey -mIO::Socket::SSL ^
|
||||
-mDigest::HMAC_MD5 -mAuthen::NTLM -e -mTime::HiRes ^
|
||||
-mData::Uniqid -mURI::Escape -mIO::Tee ""
|
||||
|
||||
perl ./imapsync
|
||||
perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --delete2 --expunge2
|
||||
perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --delete2 --expunge2 --folder INBOX --nofoldersizes
|
||||
perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --delete2 --expunge2 --folder INBOX --nofoldersizes --usecache
|
||||
|
||||
@ECHO ==== All 8 combinaisons between ssl1/tls1 ssl2/tls2 justconnect/justlogin
|
||||
|
||||
@ECHO ==== 1 --SSL1 --SSL2 --JUSTCONNECT
|
||||
perl ./imapsync --host1 p --ssl1 --user1 tata --passfile1 secret.tata --host2 p --ssl2 --user2 titi --passfile2 secret.titi --justconnect
|
||||
|
||||
@ECHO ==== 2 --SSL1 --SSL2 --JUSTLOGIN
|
||||
perl ./imapsync --host1 p --ssl1 --user1 tata --passfile1 secret.tata --host2 p --ssl2 --user2 titi --passfile2 secret.titi --justlogin
|
||||
|
||||
@ECHO ==== 3 --TLS1 --TLS2 --JUSTCONNECT
|
||||
perl ./imapsync --host1 p --tls1 --user1 tata --passfile1 secret.tata --host2 p --tls2 --user2 titi --passfile2 secret.titi --justconnect
|
||||
|
||||
@ECHO ==== 4 --TLS1 --TLS2 --JUSTLOGIN
|
||||
perl ./imapsync --host1 p --tls1 --user1 tata --passfile1 secret.tata --host2 p --tls2 --user2 titi --passfile2 secret.titi --justlogin
|
||||
|
||||
@ECHO ==== 5 --SSL1 --TLS2 --JUSTCONNECT
|
||||
perl ./imapsync --host1 p --ssl1 --user1 tata --passfile1 secret.tata --host2 p --tls2 --user2 titi --passfile2 secret.titi --justconnect
|
||||
|
||||
@ECHO ==== 6 --SSL1 --TLS2 --JUSTLOGIN
|
||||
perl ./imapsync --host1 p --ssl1 --user1 tata --passfile1 secret.tata --host2 p --tls2 --user2 titi --passfile2 secret.titi --justlogin
|
||||
|
||||
@ECHO ==== 7 --TLS1 --SSL2 --JUSTCONNECT
|
||||
perl ./imapsync --host1 p --tls1 --user1 tata --passfile1 secret.tata --host2 p --ssl2 --user2 titi --passfile2 secret.titi --justconnect
|
||||
|
||||
@ECHO ==== 8 --TLS1 --SSL2 --JUSTLOGIN
|
||||
perl ./imapsync --host1 p --tls1 --user1 tata --passfile1 secret.tata --host2 p --ssl2 --user2 titi --passfile2 secret.titi --justlogin
|
||||
|
||||
|
||||
@ECHO ==== All folders in ssl
|
||||
perl ./imapsync --host1 p --ssl1 --user1 tata --passfile1 secret.tata --host2 p --ssl2 --user2 titi --passfile2 secret.titi --delete2 --expunge2
|
||||
@ECHO ==== INBOX only
|
||||
perl ./imapsync --host1 p --tls1 --user1 tata --passfile1 secret.tata --host2 p --tls2 --user2 titi --passfile2 secret.titi --delete2 --expunge2 --folder INBOX --nofoldersizes
|
||||
@ECHO ==== INBOX only and --usecache
|
||||
perl ./imapsync --host1 p --tls1 --user1 tata --passfile1 secret.tata --host2 p --ssl2 --user2 titi --passfile2 secret.titi --delete2 --expunge2 --folder INBOX --nofoldersizes --usecache
|
||||
|
||||
|
|
85
W/test2.bat
85
W/test2.bat
|
@ -1,65 +1,64 @@
|
|||
|
||||
REM $Id: test2.bat,v 1.15 2013/05/06 08:15:39 gilles Exp gilles $
|
||||
REM
|
||||
@REM $Id: test2.bat,v 1.16 2014/05/22 14:20:07 gilles Exp gilles $
|
||||
@REM
|
||||
|
||||
cd C:\msys\1.0\home\Admin\imapsync
|
||||
REM perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --delete2 --expunge2 --folder INBOX
|
||||
REM perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --delete2 --expunge1 --expunge2 --folder INBOX --usecache
|
||||
@REM perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --delete2 --expunge2 --folder INBOX
|
||||
@REM perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --delete2 --expunge1 --expunge2 --folder INBOX --usecache
|
||||
|
||||
REM imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --justfolders --nofoldersize --folder INBOX.yop.yap --sep1 / --regextrans2 "s,/,_,"
|
||||
REM imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --nofoldersize --folder INBOX.yop.yap --regexflag 's/\\Answered//g' --debug > out.txt
|
||||
@REM imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --justfolders --nofoldersize --folder INBOX.yop.yap --sep1 / --regextrans2 "s,/,_,"
|
||||
@REM imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --nofoldersize --folder INBOX.yop.yap --regexflag 's/\\Answered//g' --debug > out.txt
|
||||
|
||||
REM perl imapsync --version
|
||||
REM perl imapsync --tests_debug
|
||||
@REM perl imapsync --version
|
||||
@REM perl imapsync --tests_debug
|
||||
|
||||
REM imapsync.exe ^
|
||||
REM --host1 p --user1 big1 --passfile1 secret.big1 ^
|
||||
REM --host2 p --user2 big2 --passfile2 secret.big2 ^
|
||||
REM --folder INBOX.bigmail
|
||||
@REM imapsync.exe ^
|
||||
@REM --host1 p --user1 big1 --passfile1 secret.big1 ^
|
||||
@REM --host2 p --user2 big2 --passfile2 secret.big2 ^
|
||||
@REM --folder INBOX.bigmail
|
||||
|
||||
REM perl imapsync
|
||||
REM perl imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --nofoldersize --folder INBOX.yop.yap --regexflag "s/\\ /\\/g" --debugflags
|
||||
@REM perl imapsync
|
||||
@REM perl imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --nofoldersize --folder INBOX.yop.yap --regexflag "s/\\ /\\/g" --debugflags
|
||||
|
||||
REM FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.txt) DO imapsync ^
|
||||
REM --host1 imap.side1.org --user1 %%G --password1 %%H ^
|
||||
REM --host2 imap.side2.org --user2 %%I --password2 %%J
|
||||
@REM FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.txt) DO imapsync ^
|
||||
@REM --host1 imap.side1.org --user1 %%G --password1 %%H ^
|
||||
@REM --host2 imap.side2.org --user2 %%I --password2 %%J
|
||||
|
||||
REM imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
||||
REM --host2 p --user2 dollar --password2 "$%%&<>|^"^" --justlogin
|
||||
@REM imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
||||
@REM --host2 p --user2 dollar --password2 "$%%&<>|^"^" --justlogin
|
||||
|
||||
REM imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
||||
REM --host2 p --user2 equal --password2 "==lalala" --justlogin --debugimap2
|
||||
@REM imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
||||
@REM --host2 p --user2 equal --password2 "==lalala" --justlogin --debugimap2
|
||||
|
||||
REM perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
||||
REM --host2 p --user2 titi --passfile2 secret.titi ^
|
||||
REM --folder INBOX.useuid --useuid --debugcache --delete2
|
||||
@REM perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
||||
@REM --host2 p --user2 titi --passfile2 secret.titi ^
|
||||
@REM --folder INBOX.useuid --useuid --debugcache --delete2
|
||||
|
||||
|
||||
REM perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
||||
REM --host2 imap.gmail.com --ssl2 --user2 gilles.lamiral@gmail.com --passfile2 secret.gilles_gmail ^
|
||||
REM --usecache --nofoldersizes --folder INBOX --regextrans2 "s(INBOX)([Gmail]/te*st)"
|
||||
@REM perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
||||
@REM --host2 imap.gmail.com --ssl2 --user2 gilles.lamiral@gmail.com --passfile2 secret.gilles_gmail ^
|
||||
@REM --usecache --nofoldersizes --folder INBOX --regextrans2 "s(INBOX)([Gmail]/te*st)"
|
||||
|
||||
REM perl ./imapsync --host1 imap.gmail.com --port1 993 --ssl1 --host2 imap.bigs.dk --justconnect
|
||||
@REM perl ./imapsync --host1 imap.gmail.com --port1 993 --ssl1 --host2 imap.bigs.dk --justconnect
|
||||
|
||||
REM imapsync.exe --host1 imap.gmail.com --port1 993 --ssl1 --host2 imap.bigs.dk --justconnect
|
||||
@REM imapsync.exe --host1 imap.gmail.com --port1 993 --ssl1 --host2 imap.bigs.dk --justconnect
|
||||
|
||||
REM @echo off
|
||||
@REM @ECHO off
|
||||
|
||||
SET csvfile=file.txt
|
||||
|
||||
DATE /t
|
||||
TIME /t
|
||||
FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (%csvfile%) DO (
|
||||
@ECHO ==== Syncing from account %%G to account %%I ====
|
||||
@ECHO.
|
||||
|
||||
FOR /f "tokens=1-4 delims=-/: " %%a IN ('DATE /t') DO (SET mydate=%%c_%%a_%%b_%%d)
|
||||
FOR /f "tokens=1-2 delims=-/: " %%a IN ('TIME /t') DO (SET mytime=%%a_%%b)
|
||||
ECHO %mydate%_%mytime%
|
||||
|
||||
if not exist LOG mkdir LOG
|
||||
FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (%csvfile%) DO ECHO syncing to user %%I & imapsync ^
|
||||
imapsync ^
|
||||
--host1 imap.side1.org --user1 %%G --password1 %%H ^
|
||||
--host2 imap.side2.org --user2 %%I --password2 %%J ^
|
||||
> LOG\log_%%I_%mydate%_%mytime%.txt 2>&1
|
||||
--host2 imap.side2.org --user2 %%I --password2 %%J
|
||||
|
||||
ECHO Loop finished
|
||||
ECHO log files are in LOG directory
|
||||
PAUSE
|
||||
@ECHO.==== End syncing from account %%G to account %%I ====
|
||||
@ECHO.
|
||||
)
|
||||
|
||||
@ECHO Loop finished!
|
||||
@ECHO Log files are in LOG_imapsync directory
|
||||
@PAUSE
|
||||
|
|
17
W/test3.bat
17
W/test3.bat
|
@ -1,20 +1,9 @@
|
|||
|
||||
|
||||
REM $Id: test3.bat,v 1.12 2014/05/22 10:15:14 gilles Exp gilles $
|
||||
cd /D %~dp0
|
||||
|
||||
REM E:
|
||||
REM cd .\temp
|
||||
REM cd \
|
||||
REM imapsync.exe --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --usecache --tmpdir "E:\TEMP" --include "blanc"
|
||||
REM PAUSE
|
||||
REM perl imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --usecache --tmpdir "E:\TEMP"
|
||||
REM perl imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --usecache
|
||||
|
||||
mkdir "\\?\E:\TEMP\lala"
|
||||
REM mkdir "\\?\E:\TEMP\01_______\01_______\02_______\03_______\04_______\05_______\06_______\07_______\08_______\09_______\10_______\11_______\12_______\13_______\14_______\15_______\16_______\17_______\18_______\19_______\20_______\21_______\22_______\22_______\24_______\25_______\26_______\27_______\28_______\29_______\30_______\"
|
||||
perl ./imapsync --host1 lamiral.info --tls1 --user1 tata --passfile1 secret.tata --host2 lamiral.info --tls2 --user2 titi --passfile2 secret.titi --justconnect --debugimap
|
||||
EXIT
|
||||
|
||||
|
||||
perl imapsync --tests_debug --tmpdir "\\?\E:\TEMP\long"
|
||||
perl imapsync --tests --tmpdir "\\?\E:\TEMP\long"
|
||||
|
||||
|
||||
|
|
20
W/test3_longdir.bat
Normal file
20
W/test3_longdir.bat
Normal file
|
@ -0,0 +1,20 @@
|
|||
|
||||
|
||||
cd /D %~dp0
|
||||
|
||||
REM E:
|
||||
REM cd .\temp
|
||||
REM cd \
|
||||
REM imapsync.exe --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --usecache --tmpdir "E:\TEMP" --include "blanc"
|
||||
REM PAUSE
|
||||
REM perl imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --usecache --tmpdir "E:\TEMP"
|
||||
REM perl imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --usecache
|
||||
|
||||
mkdir "\\?\E:\TEMP\lala"
|
||||
REM mkdir "\\?\E:\TEMP\01_______\01_______\02_______\03_______\04_______\05_______\06_______\07_______\08_______\09_______\10_______\11_______\12_______\13_______\14_______\15_______\16_______\17_______\18_______\19_______\20_______\21_______\22_______\22_______\24_______\25_______\26_______\27_______\28_______\29_______\30_______\"
|
||||
|
||||
|
||||
perl imapsync --tests_debug --tmpdir "\\?\E:\TEMP\long"
|
||||
perl imapsync --tests --tmpdir "\\?\E:\TEMP\long"
|
||||
|
||||
|
|
@ -1,10 +1,39 @@
|
|||
REM $Id: test_exe.bat,v 1.11 2014/05/22 10:13:34 gilles Exp gilles $
|
||||
|
||||
cd /D %~dp0
|
||||
|
||||
cd C:\msys\1.0\home\Admin\imapsync
|
||||
perl -mMail::IMAPClient -mDigest::MD5 -mTerm::ReadKey -mIO::Socket::SSL -mFile::Spec -mDigest::HMAC_MD5 -e ''
|
||||
@REM EXIT
|
||||
|
||||
.\imapsync.exe
|
||||
.\imapsync.exe --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --justconnect
|
||||
|
||||
@ECHO ==== All 8 combinaisons between ssl1/tls1 ssl2/tls2 justconnect/justlogin
|
||||
@ECHO
|
||||
@ECHO ==== 1 --SSL1 --SSL2 --JUSTCONNECT
|
||||
.\imapsync.exe --host1 p --ssl1 --user1 tata --passfile1 secret.tata --host2 p --ssl2 --user2 titi --passfile2 secret.titi --justconnect
|
||||
|
||||
@ECHO ==== 2 --SSL1 --SSL2 --JUSTLOGIN
|
||||
.\imapsync.exe --host1 p --ssl1 --user1 tata --passfile1 secret.tata --host2 p --ssl2 --user2 titi --passfile2 secret.titi --justlogin
|
||||
|
||||
@ECHO ==== 3 --TLS1 --TLS2 --JUSTCONNECT
|
||||
.\imapsync.exe --host1 p --tls1 --user1 tata --passfile1 secret.tata --host2 p --tls2 --user2 titi --passfile2 secret.titi --justconnect
|
||||
|
||||
@ECHO ==== 4 --TLS1 --TLS2 --JUSTLOGIN
|
||||
.\imapsync.exe --host1 p --tls1 --user1 tata --passfile1 secret.tata --host2 p --tls2 --user2 titi --passfile2 secret.titi --justlogin
|
||||
|
||||
@ECHO ==== 5 --SSL1 --TLS2 --JUSTCONNECT
|
||||
.\imapsync.exe --host1 p --ssl1 --user1 tata --passfile1 secret.tata --host2 p --tls2 --user2 titi --passfile2 secret.titi --justconnect
|
||||
|
||||
@ECHO ==== 6 --SSL1 --TLS2 --JUSTLOGIN
|
||||
.\imapsync.exe --host1 p --ssl1 --user1 tata --passfile1 secret.tata --host2 p --tls2 --user2 titi --passfile2 secret.titi --justlogin
|
||||
|
||||
@ECHO ==== 7 --TLS1 --SSL2 --JUSTCONNECT
|
||||
.\imapsync.exe --host1 p --tls1 --user1 tata --passfile1 secret.tata --host2 p --ssl2 --user2 titi --passfile2 secret.titi --justconnect
|
||||
|
||||
@ECHO ==== 8 --TLS1 --SSL2 --JUSTLOGIN
|
||||
.\imapsync.exe --host1 p --tls1 --user1 tata --passfile1 secret.tata --host2 p --ssl2 --user2 titi --passfile2 secret.titi --justlogin
|
||||
|
||||
|
||||
|
||||
.\imapsync.exe --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl1_SSL_version SSLv3 --ssl2 --justconnect
|
||||
.\imapsync.exe --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl1_SSL_version SSLv3 --ssl2 --justlogin
|
||||
.\imapsync.exe --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --delete2
|
||||
|
|
0
W/tmp/longlines/line_00000.txt
Normal file
0
W/tmp/longlines/line_00000.txt
Normal file
1
W/tmp/longlines/line_01000.txt
Normal file
1
W/tmp/longlines/line_01000.txt
Normal file
|
@ -0,0 +1 @@
|
|||
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
|
1
W/tmp/longlines/line_02000.txt
Normal file
1
W/tmp/longlines/line_02000.txt
Normal file
|
@ -0,0 +1 @@
|
|||
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
|
1
W/tmp/longlines/line_03000.txt
Normal file
1
W/tmp/longlines/line_03000.txt
Normal file
|
@ -0,0 +1 @@
|
|||
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
|
1
W/tmp/longlines/line_04000.txt
Normal file
1
W/tmp/longlines/line_04000.txt
Normal file
|
@ -0,0 +1 @@
|
|||
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
|
1
W/tmp/longlines/line_05000.txt
Normal file
1
W/tmp/longlines/line_05000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_06000.txt
Normal file
1
W/tmp/longlines/line_06000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_07000.txt
Normal file
1
W/tmp/longlines/line_07000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_08000.txt
Normal file
1
W/tmp/longlines/line_08000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_09000.txt
Normal file
1
W/tmp/longlines/line_09000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_10000.txt
Normal file
1
W/tmp/longlines/line_10000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_11000.txt
Normal file
1
W/tmp/longlines/line_11000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_12000.txt
Normal file
1
W/tmp/longlines/line_12000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_13000.txt
Normal file
1
W/tmp/longlines/line_13000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_14000.txt
Normal file
1
W/tmp/longlines/line_14000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_15000.txt
Normal file
1
W/tmp/longlines/line_15000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_16000.txt
Normal file
1
W/tmp/longlines/line_16000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_17000.txt
Normal file
1
W/tmp/longlines/line_17000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_18000.txt
Normal file
1
W/tmp/longlines/line_18000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_19000.txt
Normal file
1
W/tmp/longlines/line_19000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_20000.txt
Normal file
1
W/tmp/longlines/line_20000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_21000.txt
Normal file
1
W/tmp/longlines/line_21000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_22000.txt
Normal file
1
W/tmp/longlines/line_22000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_23000.txt
Normal file
1
W/tmp/longlines/line_23000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_24000.txt
Normal file
1
W/tmp/longlines/line_24000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_25000.txt
Normal file
1
W/tmp/longlines/line_25000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_26000.txt
Normal file
1
W/tmp/longlines/line_26000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_27000.txt
Normal file
1
W/tmp/longlines/line_27000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_28000.txt
Normal file
1
W/tmp/longlines/line_28000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_29000.txt
Normal file
1
W/tmp/longlines/line_29000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_30000.txt
Normal file
1
W/tmp/longlines/line_30000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_31000.txt
Normal file
1
W/tmp/longlines/line_31000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_32000.txt
Normal file
1
W/tmp/longlines/line_32000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_33000.txt
Normal file
1
W/tmp/longlines/line_33000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_34000.txt
Normal file
1
W/tmp/longlines/line_34000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_35000.txt
Normal file
1
W/tmp/longlines/line_35000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_36000.txt
Normal file
1
W/tmp/longlines/line_36000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_37000.txt
Normal file
1
W/tmp/longlines/line_37000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_38000.txt
Normal file
1
W/tmp/longlines/line_38000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_39000.txt
Normal file
1
W/tmp/longlines/line_39000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_40000.txt
Normal file
1
W/tmp/longlines/line_40000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_41000.txt
Normal file
1
W/tmp/longlines/line_41000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_42000.txt
Normal file
1
W/tmp/longlines/line_42000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_43000.txt
Normal file
1
W/tmp/longlines/line_43000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_44000.txt
Normal file
1
W/tmp/longlines/line_44000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_45000.txt
Normal file
1
W/tmp/longlines/line_45000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_46000.txt
Normal file
1
W/tmp/longlines/line_46000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_47000.txt
Normal file
1
W/tmp/longlines/line_47000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_48000.txt
Normal file
1
W/tmp/longlines/line_48000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_49000.txt
Normal file
1
W/tmp/longlines/line_49000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_50000.txt
Normal file
1
W/tmp/longlines/line_50000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_51000.txt
Normal file
1
W/tmp/longlines/line_51000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_52000.txt
Normal file
1
W/tmp/longlines/line_52000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_53000.txt
Normal file
1
W/tmp/longlines/line_53000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_54000.txt
Normal file
1
W/tmp/longlines/line_54000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_55000.txt
Normal file
1
W/tmp/longlines/line_55000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_56000.txt
Normal file
1
W/tmp/longlines/line_56000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_57000.txt
Normal file
1
W/tmp/longlines/line_57000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_58000.txt
Normal file
1
W/tmp/longlines/line_58000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_59000.txt
Normal file
1
W/tmp/longlines/line_59000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_60000.txt
Normal file
1
W/tmp/longlines/line_60000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_61000.txt
Normal file
1
W/tmp/longlines/line_61000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_62000.txt
Normal file
1
W/tmp/longlines/line_62000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_63000.txt
Normal file
1
W/tmp/longlines/line_63000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_64000.txt
Normal file
1
W/tmp/longlines/line_64000.txt
Normal file
File diff suppressed because one or more lines are too long
1
W/tmp/longlines/line_65000.txt
Normal file
1
W/tmp/longlines/line_65000.txt
Normal file
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue