Commit Graph

2540 Commits

Author SHA1 Message Date
Thomas Merkel
ee17e3dc3c Fix: if any tunnel (preauth_tunnel or transport_tunnel) the hostname should not be required
It's required to modify my change 1ce596d713
because a hostname shouldn't be needed if any tunnel is used. Both tunnels
provide a regular IMAP interface which is used by offlineimap.

Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/503
Reported-by: Ilias Tsitsimpis <i.tsitsimpis@gmail.com>
Signed-off-by: Thomas Merkel <tm@core.io>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-27 20:03:17 +02:00
Nicolas Sebrecht
8c9cd5b7e3 contrib/release.py: email: don't write '<>' for message-id twice
Minor code refactoring.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-08 16:39:56 +02:00
Nicolas Sebrecht
832c704443 contrib/release.py: website: add all changes to the commit
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-08 16:28:44 +02:00
Nicolas Sebrecht
0d65762168 contrib/release/py: fix the 'v' character in commit message
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-08 16:20:59 +02:00
Nicolas Sebrecht
e1a6feb2d5 v7.1.3
Tested-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
Tested-by: Remi Locherer <remi.locherer@relo.ch>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-08 15:58:10 +02:00
Nicolas Sebrecht
392e64c3b3 upcoming.py: get header template from external file
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-02 22:33:57 +02:00
Nicolas Sebrecht
a9514c2b8a upcoming.py: display a message with the filename once written
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-02 21:57:39 +02:00
Nicolas Sebrecht
6b64f87462 provide non-zero exit code & display configuration mismatch error at the end of the run
This behaviour is what users would expected most. The error message is about
utf8foldernames and decodefoldernames.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-02 21:24:12 +02:00
Nicolas Sebrecht
12de158ca2 Merge branch 'uliska/utf8foldernames' into next 2017-10-02 21:11:29 +02:00
Urs Liska
f5198794e5 utf8: document new feature, deprecate old one
- Document the new utf8foldernames config option
- Deprecate the old decodefoldernames option
  Update its documentation, discussing the limitations.

Signed-off-by: Urs Liska <git@ursliska.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-02 21:09:43 +02:00
Urs Liska
8b398f3aa8 utf8: Safeguard against use of old *and* new option
The new 'utf8foldernames' will not work together with the existing
'decodefoldernames' option (which will be documented in the next
commit). Therefore this commit will check for this condition and
abort the synchronization of a misconfigured account before doing
any changes.
Other accounts are not affected.

Signed-off-by: Urs Liska <git@ursliska.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-02 21:09:43 +02:00
Urs Liska
ef3299b7ce Remove some unnecessary whitespace (in existing code)
Addresses https://github.com/OfflineIMAP/offlineimap/pull/498#discussion_r141672756

Signed-off-by: Urs Liska <git@ursliska.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-02 21:09:43 +02:00
Urs Liska
36d726763d utf8: implement utf8foldernames option
If utf8foldernames is enabled on account level all folder names read
from the IMAP server will immediately be reencoded to UTF-8. Names
will be treated as UTF-8 as long as the IMAP server isn't contacted again,
for which they are reencoded to IMAP4-UTF-7.

This means that any further processing such as nametrans, folderfilter
etc. will act upon the UTF-8 names, which will have to be documented
carefully.

NOTE 1:
GMail repositories and folders inherit from the IMAP... classes, so I don't
know yet if these changes have ugly side-effects. But web research suggests
that GMail IMAP folders are equally encoded in UTF-7 so that should work
identically here and incorporate the same improvements.

NOTE 2:
I could not test the behaviour with idlefolders as I didn't get this option
to work at all, not even with the latest stable version.

NOTE 3:
I *did* test to sync an IMAP repository against another IMAP repository.

Signed-off-by: Urs Liska <git@ursliska.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-02 21:09:43 +02:00
Urs Liska
14d83dbf48 utf8: avoid dequoting IMAP folder names twice
Signed-off-by: Urs Liska <git@ursliska.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-02 21:09:43 +02:00
Urs Liska
dca5f1846d utf8 (aside): Move code for decodefoldernames
While intending *not* to change the behaviour of the existing
decodefoldernames option this commit transparently improves
the coding.
So far this worked by overriding the folder's getvisiblename() method
which reads self.visiblename from and applies the conversion on
*every* invocation of getvisiblename().
This commit does the calculation once in the IMAPFolder's __init__.

Signed-off-by: Urs Liska <git@ursliska.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-02 21:09:43 +02:00
Urs Liska
24b3f27e5f utf8: Add utf-7/8 conversion functions
This commit adds two functions
- imaputil.IMAP_utf8()
- imaputil.utf8_IMAP()
as an interface to the new imap4_utf_7 codec.

Signed-off-by: Urs Liska <git@ursliska.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-02 21:09:43 +02:00
Urs Liska
032376efad utf8: Add imap4_utf_7 codec
Add code to reencode IMAP folder names to regular utf-8.
This starts an implementation that will add a new config option
`utf8foldernames` on account level which will fix #299 and on the
long run replace the current `decodefoldernames` option.

This commit introduces code to register an `imap4_utf_7` codec
on which two-way conversion methods will later be built.

Original code by
(https://www.blogger.com/profile/16648963337079496096),
taken from
http://piao-tech.blogspot.no/2010/03/get-offlineimap-working-with-non-ascii.html

In the comment
http://piao-tech.blogspot.com/2010/03/get-offlineimap-working-with-non-ascii.html?showComment=1316041409339#c669880170006851138
indicates that this code is expected to be incorporated into offlineIMAP and therefore the author implicitly agrees to put it under this license.

Signed-off-by: Urs Liska <git@ursliska.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-02 21:09:43 +02:00
Nicolas Sebrecht
31eee55672 accounts: error out when no folder to sync
Such error can be hit when the folderfilter is wrong and excludes all the
folders.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-10-02 02:43:47 +02:00
Thomas Merkel
1ce596d713 remotehost should not be required if transporttunnel is used
If the config option `transporttunnel` is used the option `remotehost` is not
needed, because the tunnel provide the IMAP connection.

Signed-off-by: Thomas Merkel <tm@core.io>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-09-21 18:50:57 +02:00
Nicolas Sebrecht
4b18ffd5e3 man: remove mention of experimental support for python 3
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-09-03 11:15:44 +02:00
Nicolas Sebrecht
172b4279ca man: mention the supported directions of the syncs
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-09-03 11:15:23 +02:00
Nicolas Sebrecht
19442d0010 folder: Gmail: fix copyright header
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-08-15 01:24:23 +02:00
Nicolas Sebrecht
a5d9edc560 folder: Gmail: remove dead code
The support for the realdelete configuration option was removed because this
could lead to data loss.

See 51728ed to know more.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-08-15 01:19:56 +02:00
Nicolas Sebrecht
6079755b20 sqlite: provide better message error for insert
Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/488
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-07-25 11:28:56 +02:00
Nicolas Sebrecht
df7dd3e3b7 contrib/helpers: sort testers by name
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-07-12 23:18:08 +02:00
Nicolas Sebrecht
ec0460a668 MAINTAINERS: Rainer is not currently active
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-07-12 19:56:12 +02:00
Nicolas Sebrecht
e4bee74dad v7.1.2
Tested-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
Tested-by: benutzer193 <registerbn@gmail.com>
Tested-by: Remi Locherer <remi.locherer@relo.ch>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-07-10 16:58:50 +02:00
Nicolas Sebrecht
ceb69c7033 contrib/release.py: consider positive feedbacks from testers
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-07-10 16:57:43 +02:00
Nicolas Sebrecht
7d1a540598 introduce the github CODEOWNERS file
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-07-09 17:40:19 +02:00
Nicolas Sebrecht
0903d5f33c increase imaplib2 requirement from v2.55 to v2.57
Suggested-by: Chris Coleman <christocoleman@yahoo.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-07-09 17:28:12 +02:00
Nicolas Sebrecht
4b103d6d3c contrib/tested-by.py: remove dead code
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-07-05 17:09:06 +02:00
Nicolas Sebrecht
212ed87509 imapserver: fix syntax error
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-30 16:42:47 +02:00
Nicolas Sebrecht
fe2e3249ac offlineimap.conf: minor improvements
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-30 06:33:42 +02:00
Nicolas Sebrecht
481f44c784 offlineimap.conf: ssl must be disabled to force STARTTLS in some cases
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-30 05:19:43 +02:00
Nicolas Sebrecht
90244b7fa6 provide more details in error message when SSL fails on non-standard port
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-30 05:10:14 +02:00
Nicolas Sebrecht
cf01d8e0eb systemd: README: fix the name of the timer unit
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-28 09:51:12 +02:00
Alvaro Pereyra
ca21b2bd31 offlineimap.conf: minor typo fix
Fixed typo in the default config file, the word "negociation" is changed to
"negotiation" as the original author intended.

Originally-sent-by: Alvaro Pereyra <alvaronh@gmail.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-28 08:42:18 +02:00
Nicolas Sebrecht
67b4b0d9b4 upcoming: minor fixes
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-27 23:38:18 +02:00
Nicolas Sebrecht
ba47138616 folder/IMAP: introduce dedicated parsing for davmail (not supporting UIDPLUS)
Some returned responses end with ')' rather than 'UID XXX)' as expected.

BTW, a better policy could be to request for the 'X-OfflineIMAP' header only
rather than fetching all the headers and looking for it manually.

Also:
- Strip the output when error occurs: we don't need the full response unless
  'imap' debug mode is enabled.
- Improve the comments.

Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/479
Tested-by: https://github.com/secomi
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-27 20:32:58 +02:00
Nicolas Sebrecht
ce83efc3c7 folder/IMAP: improve the warning when we can't parse the returned UID
Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/479
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-14 09:47:51 +02:00
Nicolas Sebrecht
05ff68c7e1 IMAP/IMAP: continue to sync if the local side does not return a valid UID on upload
There's no reason we should abort the full sync.

Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/479
Tested-by: https://github.com/secomi
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-14 09:12:15 +02:00
Nicolas Sebrecht
fc77de5af6 contrib: more release automation
- rewrite the release script from shell to python3
- refactoring of the upcoming script and introducing the helpers library
- introduce the tested-by.py script to manage the feedbacks from the testers

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-13 11:27:38 +02:00
Nicolas Sebrecht
47a7bdc883 advise singlethreadperfolder when offlineimap hangs
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-13 11:26:27 +02:00
Nicolas Sebrecht
6e917bf0e5 systemd: README: credit Hugo as contributor
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-01 18:46:59 +02:00
Hugo Osvaldo Barrera
71f5a7759b Respect systemd conventions for timers
systemd conventions specify that timers trigger services with the same
name (this can be overridden, of course).

We're currently providing:

* offlineimap-oneshot.service
* offlineimap.service
* offlineimap.timer

This is rather confusing, since the timer doesn't actually provide the
service of the same name (even though they're bundled together!!), but a
different one.

Signed-off-by: Hugo Osvaldo Barrera <hugo@barrera.io>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-01 18:40:42 +02:00
Hugo Osvaldo Barrera
e7a3fd55ac Use a pre-existing target for systemd services
Providing mail.target is really confusing and poor UX:

* When a user enables a unit, it's not truly enabled until they ALSO
  enable mail.target. This is very counter-intuitive.
* `mail.target` provides no extra value in itself, nor is it anything
  "standard".
* Any user wanting this specific target can still continue using it just
  dropping in a `mail.target` file.

Signed-off-by: Hugo Osvaldo Barrera <hugo@barrera.io>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-01 18:40:42 +02:00
Hugo Osvaldo Barrera
87d92badfc Remove invalid systemd setting
oneshot units CANNOT have a `Restart=` setting, and including one
invalidates the service file.

Signed-off-by: Hugo Osvaldo Barrera <hugo@barrera.io>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-01 18:40:42 +02:00
Hugo Osvaldo Barrera
a242a07582 Use basic logger (since systemd picks up stdout)
No need to overcomplicate things; systemd grabs all stdout output and
logs that.

Signed-off-by: Hugo Osvaldo Barrera <hugo@barrera.io>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-01 18:40:42 +02:00
Hugo Osvaldo Barrera
8bbfca9016 Explain how to override systemd values
Signed-off-by: Hugo Osvaldo Barrera <hugo@barrera.io>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-01 18:40:42 +02:00
benutzer193
efd2548f67 systemd: remove unused watchdog functionality
Add restart on failure and increase timeout to kill service.

Signed-off-by: benutzer193 <registerbn@gmail.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-01 15:32:41 +02:00