Commit Graph

2752 Commits

Author SHA1 Message Date
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
Nicolas Sebrecht
f3b9963a48 systemd: add documentation entry in configuration files
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-06-01 11:13:17 +02:00
Nicolas Sebrecht
f9960f9293 MAINTAINERS: Remi Locherer joins the team of testers
Remi is the maintainer of offlineimap for OpenBSD. Welcome!

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-29 01:30:06 +02:00
Nicolas Sebrecht
176fc19c55 gitignore genrated css file
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-28 18:27:38 +02:00
Nicolas Sebrecht
33889c04bb Changelog: fix syntax
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-28 18:20:19 +02:00
Nicolas Sebrecht
6b51d4ed49 v7.1.1
Tested-by: Remi Locherer <remi.locherer@relo.ch>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-28 18:08:54 +02:00
Nicolas Sebrecht
d0d832e14c contrib: introduce a tool to produce the "upcoming notes"
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-22 21:37:34 +02:00
Nicolas Sebrecht
ac5cfb0e29 manual: improve the documentation about sqlite migration
Be more obvious that the legacy plain text cache is not supported while we still
support the migration to the sqlite format.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-22 08:41:11 +02:00
Nicolas Sebrecht
f37b97c61b maxage: use the remote folder first to compute min_uid
On each folder scan, we must compute the min_uid. Locally, this is done by
relying on the prefix timestamp in the filenames. If for whatever reason they do
not reflect the Date header of the email, changing maxage leads to undefined
behaviour.

To prevent from this, we rather rely on the remote folder. We assume that the
remotes are more reliable to provide correct sets of UIDs based on dates than we
are.

Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/384
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-21 00:50:04 +02:00
benutzer193
d1e770fdcb Fix systemd.timer: initialize timer after boot
Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/469
Reported-by: Jan Knížek <jk@janknizek.cz>
Signed-off-by: benutzer193 <registerbn@gmail.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-21 00:33:38 +02:00
Nicolas Sebrecht
5d5ad62fa7 mbnames: don't duplicate entries in autorefresh mode
mbnames is initialized and written once in the run from OfflineImap.__sync().

However, the in-memory instance is fed with data at sync time for each folder
and the intermediate files are written as soon as all the folders are synced for
the account. All of this is done inside the SyncableAccount.__sync() method
while the syncrunner is looping on this.

This means that we duplicate entries for mbnames in each loop (most likely when
autorefresh is enabled).

It is wrong to have duplicates in mbnames for each account. Ignore duplicates
when adding data in the mbnames intermediate files.

Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/467
Reported-and-tested-by: Shin Kojima <shin@kojima.org>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-19 08:32:22 +02:00
Ævar Arnfjörð Bjarmason
ddf2df1d8d docs: update the instructions for creating OAuth projects for GMail
I just went through this whole thing now, wasn't successful because
the referenced oauth tools don't seem to work, but this covers changes
in the Google UI since last time.

Written-By: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-16 11:19:30 +02:00
Chris Coleman
99b06ef47e Secure HTTPS test internet is connected.
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-04 22:25:22 +02:00
Nicolas Sebrecht
ffeefd9459 env info (used by -V and banner): add openssl version
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-02 17:09:03 +02:00
Nicolas Sebrecht
237d1ce5e7 documentation: add entry for faulting folders with Microsoft servers
- offlineimap.conf
- knwon issues of the man page

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-05-02 07:10:34 +02:00
Nicolas Sebrecht
22a163a768 display the imaplib and python versions for each normal run
Some users might use more than one python/imaplib version. This tends to make
debugging and support harder.

Displaying this information by default for each run should help.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-30 13:25:40 +02:00
Nicolas Sebrecht
8c04684f3b imapserver: provide some SSL info while in imap debug mode
Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/457
Tested-by: Maximilian Kaul <https://github.com/maximiliankaul>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-30 12:15:08 +02:00
Nicolas Sebrecht
39b657194a XOAUTH2: don't try this authentication method when not configured
Checking if we have to run this authentication method once it's already passed
to imaplib2 is too late. Make the checks at correct time, before we try the
authentication method. IOW, before we call

  imapobj.authenticate('XOAUTH2', self.__xoauth2handler)

Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/442
Tested-by: Klemens Schölhorn <klemens@schoelhorn.eu>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-27 21:17:25 +02:00
Maximilian Kaul
4ac44071b6 Fixed typo in doc: tls_1_2 => tls1_2
tls1_2 matches the string in offlineimap/bundled_imaplib2.py and
offlineimap fails when using tls_1_2:
("Invalid SSL version 'tls_1_2' requested for tls_version 'tls_secure'",)

Signed-off-by: Maximilian Kaul <maximilian+git@maximiliankaul.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-27 19:20:25 +02:00
Nicolas Sebrecht
e8f0e82f6c IMAP: UIDPLUS: correctly warn about weird responses from some servers
Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/455
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-26 19:39:04 +02:00
Nicolas Sebrecht
e9d8e87a71 IMAP: UIDPLUS: improve error message on response error for new UID
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-26 18:40:51 +02:00
Ilias Tsitsimpis
7bc54d241c Acquire lock before updating the CursesLogHandler window
Make sure that we refresh the screen atomically, since the emit()
function may be called by more that one threads at a time.

Also, modify the draw_bannerwin() method which used to fail in case the
window would become too small. Make sure that the provided offsets to
the window.addstr() method are properly bounded.

Closes #160: blinkenlights display is broken
Tested-by: Cyril Brulebois
Tested-by: Gaudenz Steinlin
Signed-off-by: Ilias Tsitsimpis <i.tsitsimpis@gmail.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-23 12:48:12 +02:00
Nicolas Sebrecht
2b1c842a7d website-doc: force copy of the new HTML generated man pages
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-21 21:03:14 +02:00
Nicolas Sebrecht
76ca65e0b2 Makefile: fix clean target
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-21 21:02:54 +02:00
Nicolas Sebrecht
33a7f3c14c MAINTAINERS: benutzer193 joins the testers team
Welcome!

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-20 11:18:00 +02:00
Nicolas Sebrecht
874106d3bd docs: learn to build html files for the manual pages
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-17 20:54:10 +02:00
Nicolas Sebrecht
a4c887e5b1 website-doc.sh: add hint on API removal
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-16 01:30:31 +02:00
Nicolas Sebrecht
a92b116a4f README: refactorize sections
I've decided to remove the historical and emblematic excerpt:

> It is fast.
> It is reliable.
> It is flexible.
> It is safe.

Not because we don't match them anymore but because there are known competitive
alternatives nowadays.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-16 01:02:52 +02:00
Nicolas Sebrecht
f669b3ea2f v7.1.0
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-16 00:40:54 +02:00
Nicolas Sebrecht
2c6fac6449 folder/IMAP: improve handling of "matchinguids" error while searching headers
Raise OfflineImapError instead of ValueError.

Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/452
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-04-07 20:27:39 +02:00
benutzer193
e88a6bcf03 Adjust README to systemd service file changes
Signed-off-by: benutzer193 <registerbn@gmail.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-03-28 18:17:12 +02:00
benutzer193
11c6995ac2 Remove oneshot switch from systemd services
Signed-off-by: benutzer193 <registerbn@gmail.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-03-28 18:17:12 +02:00
benutzer193
1462d0994a Use oneshot services for systemd timers
Signed-off-by: benutzer193 <registerbn@gmail.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-03-28 18:17:12 +02:00
benutzer193
bf85746923 Create systemd oneshot services
Signed-off-by: benutzer193 <registerbn@gmail.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-03-28 18:17:12 +02:00
Nicolas Sebrecht
c8206f24e1 remove support for the status_backend configuration option
Stop the run when this option is found. Migrating from the historical plain
text status cache is still supported.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-03-25 13:47:30 +01:00
Nicolas Sebrecht
49c6f14ce4 README: we moved to imaplib2 v2.57
Declare support from imaplib2 v2.57.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-03-23 18:36:45 +01:00
Nicolas Sebrecht
1670505780 README: mark porting to py3 as stalled
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-03-23 18:35:47 +01:00
Ilias Tsitsimpis
eb7651898e doc: Fix typo in offlineimap.1 man page
Signed-off-by: Ilias Tsitsimpis <i.tsitsimpis@gmail.com>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-03-23 17:19:10 +01:00
Nicolas Sebrecht
ebf5fd527e folder: UIDMaps: ignore KeyError failure while removing keys
This would require more digging to understand how this is possible. I suspect
that a previous run has been interrupted.

Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/445
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
2017-03-22 14:33:31 +01:00