imap-backup 14.4.4 → 14.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +67 -137
  3. data/docs/documentation.md +19 -0
  4. data/lib/imap/backup/account/backup.rb +2 -0
  5. data/lib/imap/backup/account/backup_folders.rb +7 -1
  6. data/lib/imap/backup/account/client_factory.rb +1 -0
  7. data/lib/imap/backup/account/folder.rb +26 -0
  8. data/lib/imap/backup/account/folder_backup.rb +4 -1
  9. data/lib/imap/backup/account/folder_ensurer.rb +3 -0
  10. data/lib/imap/backup/account/local_only_folder_deleter.rb +2 -0
  11. data/lib/imap/backup/account/restore.rb +2 -0
  12. data/lib/imap/backup/account/serialized_folders.rb +5 -1
  13. data/lib/imap/backup/account.rb +15 -11
  14. data/lib/imap/backup/cli/backup.rb +3 -0
  15. data/lib/imap/backup/cli/folder_enumerator.rb +6 -0
  16. data/lib/imap/backup/cli/helpers.rb +13 -0
  17. data/lib/imap/backup/cli/local/check.rb +3 -0
  18. data/lib/imap/backup/cli/local.rb +13 -0
  19. data/lib/imap/backup/cli/remote.rb +7 -0
  20. data/lib/imap/backup/cli/restore.rb +4 -0
  21. data/lib/imap/backup/cli/setup.rb +3 -0
  22. data/lib/imap/backup/cli/single/backup.rb +3 -0
  23. data/lib/imap/backup/cli/single.rb +4 -0
  24. data/lib/imap/backup/cli/stats.rb +3 -0
  25. data/lib/imap/backup/cli/transfer.rb +8 -0
  26. data/lib/imap/backup/cli/utils.rb +6 -0
  27. data/lib/imap/backup/cli.rb +8 -0
  28. data/lib/imap/backup/client/apple_mail.rb +2 -0
  29. data/lib/imap/backup/client/automatic_login_wrapper.rb +9 -1
  30. data/lib/imap/backup/client/default.rb +15 -4
  31. data/lib/imap/backup/configuration.rb +13 -0
  32. data/lib/imap/backup/configuration_not_found.rb +1 -0
  33. data/lib/imap/backup/downloader.rb +4 -0
  34. data/lib/imap/backup/email/mboxrd/message.rb +14 -0
  35. data/lib/imap/backup/email/provider/apple_mail.rb +2 -0
  36. data/lib/imap/backup/email/provider/base.rb +2 -0
  37. data/lib/imap/backup/email/provider/fastmail.rb +2 -0
  38. data/lib/imap/backup/email/provider/gmail.rb +2 -0
  39. data/lib/imap/backup/email/provider/purelymail.rb +2 -0
  40. data/lib/imap/backup/email/provider/unknown.rb +2 -6
  41. data/lib/imap/backup/email/provider.rb +5 -0
  42. data/lib/imap/backup/file_mode.rb +2 -0
  43. data/lib/imap/backup/flag_refresher.rb +4 -0
  44. data/lib/imap/backup/local_only_message_deleter.rb +2 -0
  45. data/lib/imap/backup/logger.rb +18 -0
  46. data/lib/imap/backup/migrator.rb +3 -0
  47. data/lib/imap/backup/mirror/map.rb +21 -0
  48. data/lib/imap/backup/mirror.rb +8 -0
  49. data/lib/imap/backup/naming.rb +10 -1
  50. data/lib/imap/backup/retry_on_error.rb +9 -0
  51. data/lib/imap/backup/serializer/appender.rb +9 -0
  52. data/lib/imap/backup/serializer/delayed_metadata_serializer.rb +4 -0
  53. data/lib/imap/backup/serializer/folder_maker.rb +1 -0
  54. data/lib/imap/backup/serializer/imap.rb +38 -2
  55. data/lib/imap/backup/serializer/integrity_checker.rb +1 -0
  56. data/lib/imap/backup/serializer/mbox.rb +26 -0
  57. data/lib/imap/backup/serializer/message.rb +13 -0
  58. data/lib/imap/backup/serializer/message_enumerator.rb +10 -2
  59. data/lib/imap/backup/serializer/permission_checker.rb +6 -0
  60. data/lib/imap/backup/serializer/transaction.rb +18 -0
  61. data/lib/imap/backup/serializer/unused_name_finder.rb +4 -0
  62. data/lib/imap/backup/serializer/version2_migrator.rb +4 -0
  63. data/lib/imap/backup/serializer.rb +56 -2
  64. data/lib/imap/backup/setup/account/header.rb +6 -0
  65. data/lib/imap/backup/setup/account.rb +6 -0
  66. data/lib/imap/backup/setup/asker.rb +16 -0
  67. data/lib/imap/backup/setup/backup_path.rb +6 -0
  68. data/lib/imap/backup/setup/connection_tester.rb +5 -0
  69. data/lib/imap/backup/setup/email_changer.rb +6 -0
  70. data/lib/imap/backup/setup/folder_chooser.rb +4 -0
  71. data/lib/imap/backup/setup/global_options/download_strategy_chooser.rb +4 -0
  72. data/lib/imap/backup/setup/global_options.rb +4 -0
  73. data/lib/imap/backup/setup/helpers.rb +3 -0
  74. data/lib/imap/backup/setup.rb +5 -0
  75. data/lib/imap/backup/text/sanitizer.rb +9 -0
  76. data/lib/imap/backup/thunderbird/mailbox_exporter.rb +7 -0
  77. data/lib/imap/backup/uploader.rb +5 -0
  78. data/lib/imap/backup/version.rb +6 -1
  79. metadata +3 -5
  80. data/docs/api.md +0 -20
  81. data/docs/development.md +0 -110
  82. data/docs/migrate-server-keep-address.md +0 -47
data/docs/development.md DELETED
@@ -1,110 +0,0 @@
1
- # Repository
2
-
3
- After cloning the repo, run the following command to get
4
- better `git blame` output:
5
-
6
- ```sh
7
- git config --local blame.ignoreRevsFile .git-blame-ignore-revs
8
- ```
9
-
10
- # Design Goals
11
-
12
- * Secure - use a local configuration file protected by permissions
13
- * Restartable - calculate start point based on already downloaded messages
14
- * Standalone - do not rely on an email client or MTA
15
-
16
- # Testing
17
-
18
- ## Feature Specs
19
-
20
- Specs under `specs/features` are integration specs.
21
- Some of these specs run against two local IMAP servers
22
- controlled by Podman (or Docker) Compose.
23
-
24
- Start them before running the test suite
25
-
26
- ```sh
27
- $ podman-compose -f dev/compose.yml up -d
28
- ```
29
-
30
- or, with Podman
31
-
32
- ```sh
33
- $ podman-compose -f dev/compose.yml up -d
34
- ```
35
-
36
- Then, run all specs
37
-
38
- ```sh
39
- $ rspec
40
- ```
41
-
42
- To exclude container-based tests
43
-
44
- ```sh
45
- $ rspec --tag ~docker
46
- ```
47
-
48
- To run **just** the feature specs
49
-
50
- ```sh
51
- rspec spec/features/**/*_spec.rb
52
- ```
53
-
54
- ## Full Test Run
55
-
56
- The full test run includes RSpec specs **and** Runbocop checks
57
-
58
- ```sh
59
- rake
60
- ```
61
-
62
- # Older Rubies
63
-
64
- A Containerfile is available to allow testing with all available Ruby versions,
65
- see the README in the `dev` directory.
66
-
67
- # Performance Specs
68
-
69
- ```sh
70
- PERFORMANCE=1 rspec --order=defined
71
- ```
72
-
73
- Beware: the performance spec (just backup for now) takes a very
74
- long time to run, approximately 24 hours!
75
-
76
- ### Debugging
77
-
78
- The feature specs are run 'out of process' via the Aruba gem.
79
- In order to see debugging output from the process,
80
- use `last_command_started.output`.
81
-
82
- ## Access Docker imap server
83
-
84
- ```ruby
85
- require "net/imap"
86
- require_relative "spec/features/support/30_email_server_helpers"
87
-
88
- include EmailServerHelpers
89
-
90
- test_connection = test_server_connection_parameters
91
-
92
- test_imap = Net::IMAP.new(test_connection[:server], test_connection[:connection_options])
93
- test_imap.login(test_connection[:username], test_connection[:password])
94
-
95
- message = "From: #{test_connection[:username]}\nSubject: Some Subject\n\nHello!\n"
96
- response = test_imap.append("INBOX", message, nil, nil)
97
-
98
- test_imap.examine("INBOX")
99
- uids = test_imap.uid_search(["ALL"]).sort
100
-
101
- fetch_data_items = test_imap.uid_fetch(uids, ["BODY[]"])
102
- ```
103
-
104
- # Contributing
105
-
106
- 1. Fork it
107
- 2. Create your feature branch (`git checkout -b my-new-feature`)
108
- 3. Commit your changes (`git commit -am 'Added some feature'`)
109
- 4. Push to the branch (`git push origin my-new-feature`)
110
- 5. Create new Pull Request
@@ -1,47 +0,0 @@
1
- # Migrate to a new e-mail server while keeping your existing address
2
-
3
- While switching e-mail provider (from provider `A` to `B`),
4
- you might want to keep the same address (`mymail@domain.com`),
5
- and copy all your existing e-mails to your new server `B`.
6
- `imap-backup` can do that too!
7
-
8
- It is best to use [`imap-backup migrate`](/docs/commands/migrate.md)
9
- and not [`imap-backup restore`](/docs/commands/restore.md) here because
10
- `migrate` simply copies emails to folders with the same name as the ones
11
- they were downloaded from, while `restore` changes the names of restored
12
- folders if folders with the same name already exist on the destination server.
13
-
14
- 1. Backup your e-mails: use [`imap-backup setup`](/docs/commands/setup.md)
15
- to setup connection to your old provider `A`,
16
- then launch [`imap-backup backup`](/docs/commands/backup.md).
17
- 1. Actually switch your e-mail service provider (update your DNS MX and all that...).
18
- 1. As both the source and the destination have the same address,
19
- you need to manually rename your old account first:
20
-
21
- 1. Modify your configuration file manually
22
- (i.e. not via `imap-backup setup`) and
23
- rename your account to `mymail-old@domain.com`:
24
-
25
- ```diff
26
- "accounts": [
27
- {
28
- - "username": "mymail@domain.com",
29
- + "username": "mymail-old@domain.com",
30
- "password": "...",
31
- - "local_path": "/some/path/.imap-backup/mymail_domain.com",
32
- + "local_path": "/some/path/.imap-backup/mymail-old_domain.com",
33
- "folders": [...],
34
- "server": "..."
35
- }
36
- ```
37
-
38
- 1. Rename the backup directory from `mymail_domain.com`
39
- to `mymail-old_domain.com`.
40
-
41
- 1. Set up a new account giving access to the new provider `B`
42
- using `imap-backup setup`.
43
- 1. Now you can use `imap-backup migrate`, optionally adapting
44
- [delimiters and prefixes configuration](/docs/delimiters-and-prefixes.md)
45
- if need be:
46
-
47
- imap-backup migrate mymail-old@domain.com mymail@domain.com [options]