Git Product home page Git Product logo

imap-backup's Introduction

Version Build Status Coverage License Stars Activity

imap-backup

Backup, restore and migrate email accounts.

Quick Start

brew install imap-backup # for macOS
gem install imap-backup --no-document # for Linux
imap-backup setup
imap-backup

Modes

There are two types of backups:

  • Keep all (the default) - progressively saves a local copy of all emails,
  • Mirror - adds and deletes emails from the local copy to keep it up to date with the account.

What You Can Do with a Backup

  • Migrate - use the local copy to populate emails on another account. This is a once-only action that deletes any existing emails on the destination account.
  • Mirror - make a destination account match the local copy. This action can be repeated.
  • Restore - push the local copy back to the original account.

See below for a full list of commands.

Installation

Docker or Podman If you have Docker or Podman installed, the easist way to use imap-backup is via the container image.

You'll need to choose a path on your computer where your backups will be saved, we'll use ./my-data here.

If you have just one account, you can do as follows

docker run -v ./my-data:/data -ti ghcr.io/joeyates/imap-backup:latest \
  imap-backup single backup \
  --dns 8.8.8.8 \
  --email [email protected] --password mysecret --server imap.example.com \
  --path /data/me_example.com

Podman will work exactly the same.

If you have multiple accounts, you can create a configuration file.

You'll need to choose a path on your computer where your configuration will be saved, we'll use ./my-config here.

First, run the menu-driven setup program to configure your accounts

docker run -ti -v ./my-config:/config -v ./my-data:/data -ti ghcr.io/joeyates/imap-backup:latest \
  --dns 8.8.8.8 \
  imap-backup setup -c /config/imap-backup.json

Then, run the backup

docker run -v ./my-config:/config -v ./my-data:/data -ti ghcr.io/joeyates/imap-backup:latest \
  --dns 8.8.8.8 \
  imap-backup backup -c /config/imap-backup.json
Homebrew (macOS) ![Homebrew installs](https://img.shields.io/homebrew/installs/dm/imap-backup?label=Homebrew%20installs)

If you have Homebrew, do this:

brew install imap-backup
As a Ruby Gem * [Rubygem]
gem install imap-backup --no-document

If that doesn't work, see the detailed installation instructions.

From Source Code If you want to use imap-backup directly from the source code, see [here](/docs/installation/source.md).

Setup

Normally you will want to backup a number of email accounts. Doing so requires the creation of a config file.

You do this via a menu-driven command line program:

Run:

imap-backup setup

As an alternative, if you only want to backup a single account, you can pass all the necessary parameters directly to the single backup command (see the single backup docs).

GMail

To use imap-backup with GMail, Office 365 and other services that require OAuth2 authentication, you can use email-oauth2-proxy. See this blog post about using imap-backup with email-oauth2-proxy.

Backup

Manually, from the command line:

imap-backup

Alternatively, add it to your crontab.

Backups can also be inspected, for example via local show and exported via utils export-to-thunderbird.

Commands

For a full list of available commands, run

imap-backup help

For more information about a command, run

imap-backup help COMMAND

Performance

There are a couple of performance tweaks that you can use to improve backup speed.

These are activated via two settings:

  • Global setting "Delay download writes",
  • Account setting "Multi-fetch size".

See the performance document for more information.

Troubleshooting

If you have problems:

  1. ensure that you have the latest release,
  2. run imap-backup with the -v or --verbose parameter.

Development

See the Developer Documentation.

imap-backup's People

Contributors

a-krebs avatar adrien-luxey avatar andreynering avatar bentolor avatar boltronics avatar jmechnich avatar joeyates avatar lurnid avatar njakobsen avatar olleolleolle avatar sigmike avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

imap-backup's Issues

Error During Setup

lib/imap/backup/configuration/setup.rb:48:in add_account': private methodpath' called for #Imap::Backup::Configuration::Store:0x00000002afc2b8 (NoMethodError)

"Failed to save message" and hangs

I am downloading a folder of email from an inbox.com account, and the script has run beautifully for almost 4GB of data but now it is stuck on a couple messages. I enabled debugging in the config file and ran it again to see why.

It prints Failed to save message due to undefined method[]' for nil:NilClass`. The script doesn't crash but remains running with no output.

"Hostname does not match the server certificate" error

Hi, I have mailbox on my mydomain.nazwa.pl provider server which I bought.
Adress is [email protected].
When I try test connection I get:

D, [2016-04-23T14:54:55.065012 #17069] DEBUG -- : Creating IMAP instance: imap.mydomain.nazwa.pl, options: {:port=>993, :ssl=>true}
Unexpected error: hostname "imap.mydomain.nazwa.pl" does not match the server certificate

Thunderbird at account configuration also complained about certificate at first but I added exception (button in Thunderbird) and it worked.
Is it possible to bypass this error?

Imap-backup

Unable to get folders list. it doesn't work with godaddy accounts. It can't get the folders list.

all folders feature?

Any chance to use a wildcard for the folders to use "all folders" instead selecting every single folder? I have some accounts with more than 100 folders. Even new folders do not get backuped automatically.

Setup crashes unless config file already exists

Gem version 1.0.15

$ imap-backup setup
~/.rvm/gems/ruby-1.9.3-p551@imap-backup/gems/imap-backup-1.0.15/lib/imap/backup/configuration/list.rb:30:in `config': Configuration file '~/.imap-backup/config.json' not found (Imap::Backup::ConfigurationNotFound)
    from ~/.rvm/gems/ruby-1.9.3-p551@imap-backup/gems/imap-backup-1.0.15/lib/imap/backup/configuration/list.rb:14:in `setup_logging'
    from ~/.rvm/gems/ruby-1.9.3-p551@imap-backup/gems/imap-backup-1.0.15/bin/imap-backup:60:in `<top (required)>'
    from ~/.rvm/gems/ruby-1.9.3-p551@imap-backup/bin/imap-backup:23:in `load'
    from ~/.rvm/gems/ruby-1.9.3-p551@imap-backup/bin/imap-backup:23:in `<main>'
    from ~/.rvm/gems/ruby-1.9.3-p551@imap-backup/bin/ruby_executable_hooks:15:in `eval'
    from ~/.rvm/gems/ruby-1.9.3-p551@imap-backup/bin/ruby_executable_hooks:15:in `<main>'

undefined method `[]' for nil:NilClass

Hi,

I have two messages in my inbox, which imap-backup fails to backup, with the message stated in the title. This migt be related to #40, but in my case those are regular messages, not invites.

Also, none of the invites in my Calendar folder are synced, but there is no error message. The gem just dies with exit code 1.

Maildir storage in the future?

Is there any plans to support a Maildir format in the future?

(I did a quick search of existing issues and could not find similar info, apologies if I missed something.)

Worked perfect... until some days ago... (get_tagged_response EOFError)

Hi!

First: thank you for this great gem. Installed it, worked like a charm (with 1 bug, can live with that).

A few days ago it started to do this:

/usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:1190:in `get_tagged_response': end of file reached (EOFError)
	from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:1250:in `block in send_command'
	from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
	from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:1232:in `send_command'
	from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:1401:in `block in fetch_internal'
	from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
	from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:1399:in `fetch_internal'
	from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:818:in `uid_fetch'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/account/folder.rb:36:in `fetch'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/downloader.rb:16:in `block in run'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/downloader.rb:15:in `each'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/downloader.rb:15:in `run'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/account/connection.rb:44:in `block in run_backup'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/account/connection.rb:69:in `block in each_folder'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/account/connection.rb:66:in `each'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/account/connection.rb:66:in `each_folder'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/account/connection.rb:42:in `run_backup'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/bin/imap-backup:67:in `block in <top (required)>'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/configuration/list.rb:21:in `block in each_connection'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/configuration/list.rb:19:in `each'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/configuration/list.rb:19:in `each_connection'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/bin/imap-backup:66:in `<top (required)>'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/bin/imap-backup:23:in `load'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/bin/imap-backup:23:in `<main>'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/bin/ruby_executable_hooks:15:in `eval'
	from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/bin/ruby_executable_hooks:15:in `<main>'

rvm, ruby, gem ... nothing changed.

Since then: not a single backup is working any more :(

Any ideas?

Please feel free to contact me if I can help in any way (additional testing, more data, ...).

Thank you very much in advance!

How do I run this as a cronjob ?

Hi,
This works great via SSH, but I cannot get I working via the Synology Task Scheduler (cron job). I get all sorts of errors.

Brgds/Tom

Future feature (?): avoid storing password in clear text

Is there any intent to provide a future feature to not store the IMAP account password in cleartext (currently in config.json file)?

(I did a quick search of existing issues and could not find similar issue, apologies if I missed something.)

Backup all folders

The only part of this software that I don't like is that I have have to mark each folder that I want backed up. If I create a new folder I'll have to go in and mark it for backup. I want it to backup ALL the folders, even when I add new ones.

Even better would be an option for all folders with an exception list.

All folders

Is there a way to select "all folders" in the setup. Hard to select each subfolder if you have +300 folders as I have.

Errors when trying to get folder list

During Setup, when I go to choose a folder, I get the following errors when trying to get a folder list:

https://gist.github.com/mattmcmanus/7892572

This is a fastmail.fm email account. I went ahead and added the server and the test connection command in setup says that it was able to establish a connection.

I tried to debug a little bit but my ruby-foo but didn't make much progress.

Tried with:

$ ruby -v
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]

and

$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
$ gem -v
2.1.11

chmod Problem

Hi, I tried to run imap-backup on my synology.
Everything worked fine - until I chwon'ed the backup directory.
}admin@Server:/.imap-backup$ imap-backup
/usr/lib/ruby/2.4.0/fileutils.rb:1241:in chmod': Operation not permitted @ chmod_internal - /volume2/web/imapbackup/oliver_statera.de (Errno::EPERM) from /usr/lib/ruby/2.4.0/fileutils.rb:1241:in chmod'
from /usr/lib/ruby/2.4.0/fileutils.rb:919:in block in chmod' from /usr/lib/ruby/2.4.0/fileutils.rb:918:in each'
from /usr/lib/ruby/2.4.0/fileutils.rb:918:in chmod' from /usr/lib/ruby/gems/2.4.0/gems/imap-backup-1.2.1/lib/imap/backup/utils.rb:30:in block in make_folder'
from /usr/lib/ruby/gems/2.4.0/gems/imap-backup-1.2.1/lib/imap/backup/utils.rb:28:in each' from /usr/lib/ruby/gems/2.4.0/gems/imap-backup-1.2.1/lib/imap/backup/utils.rb:28:in make_folder'
from /usr/lib/ruby/gems/2.4.0/gems/imap-backup-1.2.1/lib/imap/backup/account/connection.rb:74:in create_account_folder' from /usr/lib/ruby/gems/2.4.0/gems/imap-backup-1.2.1/lib/imap/backup/account/connection.rb:18:in initialize'
from /usr/lib/ruby/gems/2.4.0/gems/imap-backup-1.2.1/lib/imap/backup/configuration/list.rb:20:in new' from /usr/lib/ruby/gems/2.4.0/gems/imap-backup-1.2.1/lib/imap/backup/configuration/list.rb:20:in block in each_connection'
from /usr/lib/ruby/gems/2.4.0/gems/imap-backup-1.2.1/lib/imap/backup/configuration/list.rb:19:in each' from /usr/lib/ruby/gems/2.4.0/gems/imap-backup-1.2.1/lib/imap/backup/configuration/list.rb:19:in each_connection'
from /usr/lib/ruby/gems/2.4.0/gems/imap-backup-1.2.1/bin/imap-backup:66:in <top (required)>' from /bin/imap-backup:23:in load'
from /bin/imap-backup:23:in `

'
admin@Server:/.imap-backup$

And the config file is not used anymore.

I'm confused

`fetch': undefined method `force_encoding' for nil:NilClass (NoMethodError)

$ imap-backup 
D, [2018-05-24T08:57:18.697463 #15708] DEBUG -- : Running backup of account: x
D, [2018-05-24T08:57:18.697544 #15708] DEBUG -- : Creating IMAP instance: x, options: {:port=>993, :ssl=>{:verify_mode=>0}}
D, [2018-05-24T08:57:18.876536 #15708] DEBUG -- : Logging in: x
D, [2018-05-24T08:57:19.037723 #15708] DEBUG -- : Login complete
D, [2018-05-24T08:57:19.154224 #15708] DEBUG -- : [App Development] running backup
D, [2018-05-24T08:57:19.374945 #15708] DEBUG -- : [App Development] 0 new messages
D, [2018-05-24T08:57:19.375129 #15708] DEBUG -- : [Archive] running backup
D, [2018-05-24T08:57:19.589601 #15708] DEBUG -- : [Archive] 0 new messages
D, [2018-05-24T08:57:19.589825 #15708] DEBUG -- : [Arlians Campaigns] running backup
D, [2018-05-24T08:57:19.816552 #15708] DEBUG -- : [Arlians Campaigns] 0 new messages
D, [2018-05-24T08:57:19.816765 #15708] DEBUG -- : [Arlians.com Notifications] running backup
D, [2018-05-24T08:57:20.040087 #15708] DEBUG -- : [Arlians.com Notifications] 0 new messages
D, [2018-05-24T08:57:20.040324 #15708] DEBUG -- : [Calendar] running backup
D, [2018-05-24T08:57:20.314506 #15708] DEBUG -- : [Calendar] 1985 new messages
D, [2018-05-24T08:57:20.549175 #15708] DEBUG -- : [Calendar] 9 - not available - skipped
D, [2018-05-24T08:57:20.772456 #15708] DEBUG -- : [Calendar] 16 - not available - skipped
D, [2018-05-24T08:57:20.992801 #15708] DEBUG -- : [Calendar] 24 - not available - skipped
D, [2018-05-24T08:57:21.221103 #15708] DEBUG -- : [Calendar] 25 - not available - skipped
D, [2018-05-24T08:57:21.456011 #15708] DEBUG -- : [Calendar] 30 - not available - skipped
D, [2018-05-24T08:57:21.676347 #15708] DEBUG -- : [Calendar] 33 - not available - skipped
D, [2018-05-24T08:57:21.901910 #15708] DEBUG -- : [Calendar] 39 - not available - skipped
D, [2018-05-24T08:57:22.124641 #15708] DEBUG -- : [Calendar] 42 - not available - skipped
D, [2018-05-24T08:57:22.350973 #15708] DEBUG -- : [Calendar] 54 - not available - skipped
D, [2018-05-24T08:57:22.576765 #15708] DEBUG -- : [Calendar] 55 - not available - skipped
D, [2018-05-24T08:57:22.799640 #15708] DEBUG -- : [Calendar] 56 - not available - skipped
D, [2018-05-24T08:57:23.022502 #15708] DEBUG -- : [Calendar] 57 - not available - skipped
D, [2018-05-24T08:57:23.249829 #15708] DEBUG -- : [Calendar] 63 - not available - skipped
D, [2018-05-24T08:57:23.470018 #15708] DEBUG -- : [Calendar] 72 - not available - skipped
D, [2018-05-24T08:57:23.689962 #15708] DEBUG -- : [Calendar] 74 - not available - skipped
D, [2018-05-24T08:57:23.914456 #15708] DEBUG -- : [Calendar] 80 - not available - skipped
D, [2018-05-24T08:57:24.157435 #15708] DEBUG -- : [Calendar] 83 - not available - skipped
D, [2018-05-24T08:57:24.379108 #15708] DEBUG -- : [Calendar] 86 - not available - skipped
D, [2018-05-24T08:57:24.602591 #15708] DEBUG -- : [Calendar] 87 - not available - skipped
D, [2018-05-24T08:57:24.836377 #15708] DEBUG -- : [Calendar] 97 - not available - skipped
D, [2018-05-24T08:57:25.057179 #15708] DEBUG -- : [Calendar] 98 - not available - skipped
D, [2018-05-24T08:57:25.279608 #15708] DEBUG -- : [Calendar] 99 - not available - skipped
D, [2018-05-24T08:57:25.505529 #15708] DEBUG -- : [Calendar] 100 - not available - skipped
D, [2018-05-24T08:57:25.735752 #15708] DEBUG -- : [Calendar] 132 - not available - skipped
D, [2018-05-24T08:57:25.955192 #15708] DEBUG -- : [Calendar] 133 - not available - skipped
D, [2018-05-24T08:57:26.175346 #15708] DEBUG -- : [Calendar] 134 - not available - skipped
D, [2018-05-24T08:57:26.398751 #15708] DEBUG -- : [Calendar] 143 - not available - skipped
D, [2018-05-24T08:57:26.629987 #15708] DEBUG -- : [Calendar] 150 - not available - skipped
D, [2018-05-24T08:57:26.850151 #15708] DEBUG -- : [Calendar] 161 - not available - skipped
D, [2018-05-24T08:57:27.071312 #15708] DEBUG -- : [Calendar] 164 - not available - skipped
D, [2018-05-24T08:57:27.307170 #15708] DEBUG -- : [Calendar] 170 - not available - skipped
D, [2018-05-24T08:57:27.526631 #15708] DEBUG -- : [Calendar] 171 - not available - skipped
D, [2018-05-24T08:57:27.801769 #15708] DEBUG -- : [Calendar] 182 - not available - skipped
D, [2018-05-24T08:57:28.029958 #15708] DEBUG -- : [Calendar] 187 - not available - skipped
D, [2018-05-24T08:57:28.256562 #15708] DEBUG -- : [Calendar] 188 - not available - skipped
D, [2018-05-24T08:57:28.480596 #15708] DEBUG -- : [Calendar] 202 - not available - skipped
D, [2018-05-24T08:57:28.719669 #15708] DEBUG -- : [Calendar] 203 - not available - skipped
D, [2018-05-24T08:57:28.942111 #15708] DEBUG -- : [Calendar] 211 - not available - skipped
D, [2018-05-24T08:57:29.173936 #15708] DEBUG -- : [Calendar] 221 - not available - skipped
D, [2018-05-24T08:57:29.397058 #15708] DEBUG -- : [Calendar] 223 - not available - skipped
D, [2018-05-24T08:57:29.624307 #15708] DEBUG -- : [Calendar] 230 - not available - skipped
D, [2018-05-24T08:57:29.845674 #15708] DEBUG -- : [Calendar] 232 - not available - skipped
D, [2018-05-24T08:57:30.073074 #15708] DEBUG -- : [Calendar] 247 - not available - skipped
D, [2018-05-24T08:57:30.296493 #15708] DEBUG -- : [Calendar] 257 - not available - skipped
D, [2018-05-24T08:57:30.523178 #15708] DEBUG -- : [Calendar] 267 - not available - skipped
D, [2018-05-24T08:57:30.754832 #15708] DEBUG -- : [Calendar] 272 - not available - skipped
D, [2018-05-24T08:57:30.995680 #15708] DEBUG -- : [Calendar] 275 - not available - skipped
D, [2018-05-24T08:57:31.222119 #15708] DEBUG -- : [Calendar] 293 - not available - skipped
D, [2018-05-24T08:57:31.441580 #15708] DEBUG -- : [Calendar] 297 - not available - skipped
D, [2018-05-24T08:57:31.661643 #15708] DEBUG -- : [Calendar] 298 - not available - skipped
D, [2018-05-24T08:57:31.880348 #15708] DEBUG -- : [Calendar] 299 - not available - skipped
D, [2018-05-24T08:57:32.114453 #15708] DEBUG -- : [Calendar] 312 - not available - skipped
D, [2018-05-24T08:57:32.336561 #15708] DEBUG -- : [Calendar] 313 - not available - skipped
D, [2018-05-24T08:57:32.557476 #15708] DEBUG -- : [Calendar] 314 - not available - skipped
D, [2018-05-24T08:57:32.784587 #15708] DEBUG -- : [Calendar] 332 - not available - skipped
D, [2018-05-24T08:57:33.008278 #15708] DEBUG -- : [Calendar] 334 - not available - skipped
D, [2018-05-24T08:57:33.230083 #15708] DEBUG -- : [Calendar] 337 - not available - skipped
D, [2018-05-24T08:57:33.450221 #15708] DEBUG -- : [Calendar] 340 - not available - skipped
D, [2018-05-24T08:57:33.668562 #15708] DEBUG -- : [Calendar] 347 - not available - skipped
D, [2018-05-24T08:57:33.893745 #15708] DEBUG -- : [Calendar] 368 - not available - skipped
D, [2018-05-24T08:57:34.112950 #15708] DEBUG -- : [Calendar] 379 - not available - skipped
D, [2018-05-24T08:57:34.331072 #15708] DEBUG -- : [Calendar] 383 - not available - skipped
D, [2018-05-24T08:57:34.558401 #15708] DEBUG -- : [Calendar] 386 - not available - skipped
D, [2018-05-24T08:57:34.779122 #15708] DEBUG -- : [Calendar] 388 - not available - skipped
D, [2018-05-24T08:57:35.005877 #15708] DEBUG -- : [Calendar] 409 - not available - skipped
D, [2018-05-24T08:57:35.222756 #15708] DEBUG -- : [Calendar] 418 - not available - skipped
D, [2018-05-24T08:57:35.443637 #15708] DEBUG -- : [Calendar] 419 - not available - skipped
D, [2018-05-24T08:57:35.670058 #15708] DEBUG -- : [Calendar] 425 - not available - skipped
D, [2018-05-24T08:57:35.887157 #15708] DEBUG -- : [Calendar] 426 - not available - skipped
D, [2018-05-24T08:57:36.108085 #15708] DEBUG -- : [Calendar] 427 - not available - skipped
D, [2018-05-24T08:57:36.326720 #15708] DEBUG -- : [Calendar] 428 - not available - skipped
D, [2018-05-24T08:57:36.554083 #15708] DEBUG -- : [Calendar] 444 - not available - skipped
D, [2018-05-24T08:57:36.773495 #15708] DEBUG -- : [Calendar] 451 - not available - skipped
D, [2018-05-24T08:57:37.000371 #15708] DEBUG -- : [Calendar] 452 - not available - skipped
D, [2018-05-24T08:57:37.230603 #15708] DEBUG -- : [Calendar] 467 - not available - skipped
D, [2018-05-24T08:57:37.451416 #15708] DEBUG -- : [Calendar] 469 - not available - skipped
D, [2018-05-24T08:57:37.671547 #15708] DEBUG -- : [Calendar] 481 - not available - skipped
D, [2018-05-24T08:57:37.899690 #15708] DEBUG -- : [Calendar] 483 - not available - skipped
D, [2018-05-24T08:57:38.120262 #15708] DEBUG -- : [Calendar] 486 - not available - skipped
D, [2018-05-24T08:57:38.350335 #15708] DEBUG -- : [Calendar] 500 - not available - skipped
D, [2018-05-24T08:57:38.569963 #15708] DEBUG -- : [Calendar] 515 - not available - skipped
D, [2018-05-24T08:57:38.802667 #15708] DEBUG -- : [Calendar] 516 - not available - skipped
D, [2018-05-24T08:57:39.023063 #15708] DEBUG -- : [Calendar] 518 - not available - skipped
D, [2018-05-24T08:57:39.244001 #15708] DEBUG -- : [Calendar] 524 - not available - skipped
D, [2018-05-24T08:57:39.471089 #15708] DEBUG -- : [Calendar] 530 - not available - skipped
D, [2018-05-24T08:57:39.697055 #15708] DEBUG -- : [Calendar] 542 - not available - skipped
D, [2018-05-24T08:57:39.916404 #15708] DEBUG -- : [Calendar] 546 - not available - skipped
D, [2018-05-24T08:57:40.150110 #15708] DEBUG -- : [Calendar] 561 - not available - skipped
D, [2018-05-24T08:57:40.371860 #15708] DEBUG -- : [Calendar] 563 - not available - skipped
D, [2018-05-24T08:57:40.590505 #15708] DEBUG -- : [Calendar] 565 - not available - skipped
D, [2018-05-24T08:57:40.821013 #15708] DEBUG -- : [Calendar] 575 - not available - skipped
D, [2018-05-24T08:57:41.040378 #15708] DEBUG -- : [Calendar] 576 - not available - skipped
D, [2018-05-24T08:57:41.263818 #15708] DEBUG -- : [Calendar] 578 - not available - skipped
D, [2018-05-24T08:57:41.483331 #15708] DEBUG -- : [Calendar] 579 - not available - skipped
D, [2018-05-24T08:57:41.705133 #15708] DEBUG -- : [Calendar] 586 - not available - skipped
D, [2018-05-24T08:57:41.923691 #15708] DEBUG -- : [Calendar] 593 - not available - skipped
D, [2018-05-24T08:57:42.152493 #15708] DEBUG -- : [Calendar] 599 - not available - skipped
D, [2018-05-24T08:57:42.370493 #15708] DEBUG -- : [Calendar] 601 - not available - skipped
D, [2018-05-24T08:57:42.594759 #15708] DEBUG -- : [Calendar] 620 - not available - skipped
D, [2018-05-24T08:57:42.815492 #15708] DEBUG -- : [Calendar] 621 - not available - skipped
D, [2018-05-24T08:57:43.034328 #15708] DEBUG -- : [Calendar] 623 - not available - skipped
D, [2018-05-24T08:57:43.254472 #15708] DEBUG -- : [Calendar] 624 - not available - skipped
D, [2018-05-24T08:57:43.477389 #15708] DEBUG -- : [Calendar] 634 - not available - skipped
D, [2018-05-24T08:57:43.708144 #15708] DEBUG -- : [Calendar] 643 - not available - skipped
D, [2018-05-24T08:57:43.929359 #15708] DEBUG -- : [Calendar] 645 - not available - skipped
D, [2018-05-24T08:57:44.177695 #15708] DEBUG -- : [Calendar] 666 - not available - skipped
/var/lib/gems/2.3.0/gems/imap-backup-1.2.2/lib/imap/backup/account/folder.rb:40:in `fetch': undefined method `force_encoding' for nil:NilClass (NoMethodError)
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/lib/imap/backup/downloader.rb:16:in `block in run'
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/lib/imap/backup/downloader.rb:15:in `each'
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/lib/imap/backup/downloader.rb:15:in `run'
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/lib/imap/backup/account/connection.rb:44:in `block in run_backup'
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/lib/imap/backup/account/connection.rb:69:in `block in each_folder'
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/lib/imap/backup/account/connection.rb:66:in `each'
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/lib/imap/backup/account/connection.rb:66:in `each_folder'
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/lib/imap/backup/account/connection.rb:42:in `run_backup'
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/bin/imap-backup:72:in `block in <top (required)>'
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/lib/imap/backup/configuration/list.rb:21:in `block in each_connection'
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/lib/imap/backup/configuration/list.rb:19:in `each'
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/lib/imap/backup/configuration/list.rb:19:in `each_connection'
	from /var/lib/gems/2.3.0/gems/imap-backup-1.2.2/bin/imap-backup:71:in `<top (required)>'
	from /usr/local/bin/imap-backup:23:in `load'
	from /usr/local/bin/imap-backup:23:in `<main>'

Add a Setup Method

The method would be:

$ imap_backup setup

It would:

  • create the config directory,
  • create the config file,
  • set permissions
  • add/remove accounts
  • list/add/remove backup folders

What does imap-backup do that similar, alternative software solutions can not?

What can imap-backup do (now and in the near future) that similar, alternative software solutions can not -- can someone provide a concise list of impactful, differentiating features?

https://github.com/joeyates/imap-backup#similar-software

(An aside: I just tried installed imap-backup, and in the first few mins of usage, I love the easy of installation and the style of user interaction. Also: I did a quick search of existing issues and could not find similar info, apologies if I missed anything.)

Extra Steps For Gmail

For gmail you should put these extra steps:
Disable 2 factor authentication
Allow insecure apps.

Backup only to ~/.imap-backup possible

The program is working fine as long as I do not set a custom path.

Any other path (no matter if edited in the config file or via setup and menus is completely ignored, the mail-directories to backup are created in ~/.imap-backup and after that the program freezes. If interrupted it shows the following:

/usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:111:insleep': Interrupt
from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:111:in wait' from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:111:inwait'
from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:1191:in get_tagged_response' from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:1250:inblock in send_command'
from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in mon_synchronize' from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:1232:insend_command'
from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:467:in block in examine' from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:inmon_synchronize'
from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:465:in examine' from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/account/folder.rb:35:infetch'
from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/downloader.rb:16:in block in run' from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/downloader.rb:15:ineach'
from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/downloader.rb:15:in run' from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/account/connection.rb:44:inblock in run_backup'
from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/account/connection.rb:69:in block in each_folder' from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/account/connection.rb:66:ineach'
from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/account/connection.rb:66:in each_folder' from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/account/connection.rb:42:inrun_backup'
from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/bin/imap-backup:67:in block in <top (required)>' from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/configuration/list.rb:21:inblock in each_connection'
from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/configuration/list.rb:19:in each' from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/lib/imap/backup/configuration/list.rb:19:ineach_connection'
from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/gems/imap-backup-1.1.0/bin/imap-backup:66:in <top (required)>' from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/bin/imap-backup:23:inload'
from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/bin/imap-backup:23:in <main>' from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/bin/ruby_executable_hooks:15:ineval'
from /usr/local/rvm/gems/ruby-2.3.0@imap-backup/bin/ruby_executable_hooks:15:in <main>'

ruby 2.3.0, imap-backup (1.1.0) in own gemset (rvm)

failures are silent when they should be noisy, and don't catch an obvious error

First off a HUGE thank-you. My provider just decided that their "unlimited" policy would now be "incredibly limited" and gave me 48hours notice that they're deleting my entire email account... of 17 years. Your package is letting me clone to my linode 10x faster than into my home.

The errors I encountered happened when I set imap-backup to archive to a custom location (it's a mounted partition)

{"accounts": [{"username: "[email protected]"
               "local_path: "/mounts/datavolume_2/imap-backup/[email protected]",
               }
              ]
 }

The error is related to the existence of the folder "/mounts/datavolume_2/imap-backup/[email protected]"

I only had the parent folder created: /mounts/datavolume_2/imap-backup/

That caused the system to apparently hang and do nothing. I switched the "debug" option on and I saw everything being downloaded, but this line was popping up...

. No such file or directory @ rb_sysopen - /mounts/datavolume_2/imap-backup/[email protected]/INBOX.mbox

After I ran mkdir /mounts/datavolume_2/imap-backup/[email protected] I got this exception raised:

/var/lib/gems/2.3.0/gems/imap-backup-1.1.0/lib/imap/backup/utils.rb:11:in `check_permissions': Permissions on '/mounts/datavolume_2/imap-backup/[email protected]' should be 0700, not 0755 (RuntimeError)

So there are a few issues:

  1. The package should either check for existence of "/mounts/datavolume_2/imap-backup/[email protected]" when it starts (and try to make it if it fails). The package will raise a fatal exception if the folder doesn't have the right permissions (good!) but passes silently if it doesn't. It doesn't even log that info in debug mode.

  2. If the package can't write to a folder, it currently just does a debug stream message and keeps going. Unless debugging is turned on, one would never know. IMHO this should definitely log to the STDOUT, and it should probably have a config option to raise a fatal exception too (perhaps by default, then let people turn that off? allowing this to continue but logging errors would be good for automated backups).

I'm sorry I can't offer a PR. I haven't touched Ruby in years (I'm mostly Python) and it getting back up to speed to fix this and write tests is too much.

anyways, thanks for this package. you're a lifesaver.

cannot backup to existing folders created in finder

/Users/name/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/imap/backup/utils.rb:11:in `check_permissions': Permissions on '/Users/name/Privat/Backups/E-Mail/info_ name_de' should be 0700, not 0755 (RuntimeError)

folders created using finder do have 755 permissions. probably you should allow this setting by default.

Backing up Calendar folder or invite mails crashes script

When backing up the Calendar folder or any individual Calendar invite/reply mails in the Inbox, the script crashes. The mailbox in question is an Office 365 mailbox.

Trace example from [Sent Items] folder as follows:

W, [2017-12-11T12:48:05.459451 #15793] WARN -- : [Sent Items] failed to save message 40531:
Date: Fri, 07 Jul 2017 10:42:18 +0200
Subject: Accepted:Monthly Meeting
To: [email protected]
Content-Type: multipart/alternative; boundary="--_com.android.email_593210916315722"
MIME-Version: 1.0

----_com.android.email_593210916315722
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

<snipped base 64>

----_com.android.email_593210916315722
Content-Type: text/calendar; method=REPLY;
name="invite.ics"
Content-Transfer-Encoding: base64

<snipped base 64>

----_com.android.email_593210916315722--
. undefined method `[]' for nil:NilClass

Failed to save message

W, [2014-08-31T13:17:19.861508 #5418] WARN -- : Failed to save message 30702:

. undefined method `asctime' for nil:NilClass

base folder is created with wrong permissions and never changed

If the base folder does not exist and the umask is not set correctly, the Utils.make_folder creates it but does not set the permissions and the program then crashes when the permissions are checked later.

A line need to be added just before the parts.each loop at line 28 of utils.rb:

FileUtils.chmod permissions, path

This correctly sets the pemissions for the base folder.

`next_token': undefined method `dump' for nil:NilClass (NoMethodError)

Hi

Im testing in my own server and I receive this error
/home/user/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/net/imap.rb:3334:in next_token': undefined method dump' for nil:NilClass (NoMethodError)
from /home/user/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/net/imap.rb:3279:in lookahead' from /home/user/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/net/imap.rb:2285:in msg_att'
from /home/user/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/net/imap.rb:2276:in numeric_response' from /home/user/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/net/imap.rb:2218:in response_untagged'
from /home/user/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/net/imap.rb:2198:in response' from /home/user/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/net/imap.rb:2124:in parse'
from /home/user/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/net/imap.rb:1219:in get_response' from /home/user/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/net/imap.rb:1127:in receive_responses'
from /home/user/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/net/imap.rb:1109:in `block in initialize'

If I do a status it works, but I can't download messages.

Email validation does not allow gTLDs

The email validation used when running the interactive setup considers emails which use gTLDs to be invalid. To reproduce, try adding an account with the email [email protected] which should be a completely valid email address but gets the error:

Enter a valid email address ? email address: ||

Manually adding the account to the configuration works exactly as expected.

List Messages

List messages (uid only):

$ imap-backup list folder1[,folder2]

Show subject:

$ imap-backup list --subject folder1[,folder2]

Crash when no folder defined in configuration

The application crashes when no folder defined in the configuration.

imap-backup-1.0.14/lib/imap/backup/account/connection.rb:69:in backup_folders': undefined methodmap' for nil:NilClass (NoMethodError)

undefined method `+' for nil:NilClass

I have a message that cannot be saved. A minimal example that reproduces the error looks like the log output below:

W, [2018-03-18T22:10:59.768498 #12612]  WARN -- : [Folder/Subfolder] failed to save message 318:
Delivered-To: [email protected]
From: example <www.example.com>
To: FirstName LastName <[email protected]>
Subject: Re: no subject
. undefined method `+' for nil:NilClass

error while trying to backup

got this error while importing, did fine some minutes, then crashed with this:

/Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/elements/received_element.rb:10:in `parse': invalid date (ArgumentError)
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/elements/received_element.rb:10:in `initialize'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/fields/received_field.rb:38:in `new'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/fields/received_field.rb:38:in `parse'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/fields/received_field.rb:31:in `initialize'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/field.rb:203:in `new'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/field.rb:203:in `new_field'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/field.rb:192:in `create_field'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/field.rb:115:in `initialize'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/header.rb:93:in `new'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/header.rb:93:in `block in fields='
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/header.rb:91:in `each'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/header.rb:91:in `fields='
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/header.rb:269:in `split_header'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/header.rb:54:in `initialize'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/message.rb:407:in `new'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/message.rb:407:in `header='
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/message.rb:1972:in `parse_message'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/message.rb:2103:in `init_with_string'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/message.rb:128:in `initialize'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/mail.rb:50:in `new'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/mail-2.5.4/lib/mail/mail.rb:50:in `new'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/email/mboxrd/message.rb:19:in `parsed'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/email/mboxrd/message.rb:23:in `from'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/email/mboxrd/message.rb:13:in `to_s'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/imap/backup/serializer/mbox.rb:35:in `save'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/imap/backup/downloader.rb:16:in `block in run'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/imap/backup/downloader.rb:13:in `each'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/imap/backup/downloader.rb:13:in `run'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/imap/backup/account/connection.rb:31:in `block in run_backup'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/imap/backup/account/connection.rb:27:in `each'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/imap/backup/account/connection.rb:27:in `run_backup'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/bin/imap-backup:63:in `block in <top (required)>'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/imap/backup/configuration/list.rb:23:in `block in each_connection'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/imap/backup/configuration/list.rb:21:in `each'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/lib/imap/backup/configuration/list.rb:21:in `each_connection'
    from /Users/username/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/imap-backup-1.0.9/bin/imap-backup:62:in `<top (required)>'
    from /Users/username/.rbenv/versions/2.0.0-p247/bin/imap-backup:23:in `load'
    from /Users/username/.rbenv/versions/2.0.0-p247/bin/imap-backup:23:in `<main>'

Do Incremental Backup

Compare online message uids and on disk files to decide which messages to download.

Outlook.com - Unable to get folder list for account

I've added an outlook.com account to imap-backup.

However, when I attempt to run the backup, I get an error message:

imap-backup backup
D, [2016-05-05T11:51:13.821929 #70108] DEBUG -- : Running backup of account: [email protected]
D, [2016-05-05T11:51:13.822518 #70108] DEBUG -- : Creating IMAP instance: imap-mail.outlook.com, options: {:port=>993, :ssl=>true}
D, [2016-05-05T11:51:15.400885 #70108] DEBUG -- : Logging in: [email protected]/xxxxxxxxxxxxxxxx
D, [2016-05-05T11:51:16.624205 #70108] DEBUG -- : Login complete
W, [2016-05-05T11:51:17.142044 #70108]  WARN -- : Unable to get folder list for account [email protected], (root '/'

In setup, if I use "test connection", I get:

?  6
D, [2016-05-05T11:53:09.572053 #70126] DEBUG -- : Creating IMAP instance: imap-mail.outlook.com, options: {:port=>993, :ssl=>true}
D, [2016-05-05T11:53:10.360409 #70126] DEBUG -- : Logging in: [email protected]/xxxxxxxxxxxxxxxx
D, [2016-05-05T11:53:11.392607 #70126] DEBUG -- : Login complete
Connection successful
Press a key

However, if I try to use 5. choose backup folders, I get:

?  5
D, [2016-05-05T11:53:44.700679 #70126] DEBUG -- : Creating IMAP instance: imap-mail.outlook.com, options: {:port=>993, :ssl=>true}
D, [2016-05-05T11:53:45.352089 #70126] DEBUG -- : Logging in: [email protected]/xxxxxxxxxxxxxxxx
D, [2016-05-05T11:53:46.408227 #70126] DEBUG -- : Login complete
W, [2016-05-05T11:53:46.916200 #70126]  WARN -- : Unable to get folder list for account [email protected], (root '/'
W, [2016-05-05T11:53:46.916291 #70126]  WARN -- : Unable to get folder list

Error during initial backup

Ran into the following error during my initial backup. It ran fine for about 10 minutes.

D, [2014-08-15T11:34:02.962854 #12381] DEBUG -- : Creating IMAP instance: imap.gmail.com, options: {:port=>993, :ssl=>true}
D, [2014-08-15T11:34:03.015719 #12381] DEBUG -- : Logging in: [email protected]/xxxxxxxx
/Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/lib/email/mboxrd/message.rb:23:in `from': undefined method `[]' for nil:NilClass (NoMethodError)
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/lib/email/mboxrd/message.rb:13:in `to_s'
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/lib/imap/backup/serializer/mbox.rb:38:in `save'
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/lib/imap/backup/downloader.rb:16:in `block in run'
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/lib/imap/backup/downloader.rb:13:in `each'
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/lib/imap/backup/downloader.rb:13:in `run'
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/lib/imap/backup/account/connection.rb:33:in `block in run_backup'
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/lib/imap/backup/account/connection.rb:29:in `each'
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/lib/imap/backup/account/connection.rb:29:in `run_backup'
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/bin/imap-backup:63:in `block in <top (required)>'
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/lib/imap/backup/configuration/list.rb:25:in `block in each_connection'
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/lib/imap/backup/configuration/list.rb:23:in `each'
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/lib/imap/backup/configuration/list.rb:23:in `each_connection'
    from /Users/aaron/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/imap-backup-1.0.10/bin/imap-backup:62:in `<top (required)>'
    from /Users/aaron/.rbenv/versions/2.1.1/bin/imap-backup:23:in `load'
    from /Users/aaron/.rbenv/versions/2.1.1/bin/imap-backup:23:in `<main>'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.