Pertanyaan Aplikasi email klien berbasis file apa saja? (Dengan tujuan menempatkan kotak surat di bawah VCS.)


Seperti Subversion yang memiliki dua tipe back-end: berbasis BDB dan berbasis file. Sebagian besar aplikasi email yang saya lihat menggunakan back-end basis data, tetapi database tidak begitu mudah untuk dimanipulasi oleh pengguna akhir.

Saat ini saya menggunakan Thunderbird, yang juga menggunakan basis data sebagai back-end. Saya menjalankan Thunderbird dalam empat mesin, jadi ada 4 database terpisah. Dan saya memiliki banyak akun email, mungkin 20 dan lebih banyak lagi. (Tidak, tolong jangan beritahu saya mail forward.) Jadi, jika back-end berbasis file, saya hanya bisa mengatur repositori Git dan menyinkronkan semuanya. Tetapi Thunderbird memiliki format basis data internal, jadi sangat tidak nyaman untuk mengelola pangkalan data terpisah ini.


4
2018-05-21 01:56


asal


Database mungkin akan lebih mudah untuk memanipulasi daripada sekumpulan file, jika Anda memiliki alat untuk melakukannya. Saya tidak tahu secara spesifik, tapi saya yakin banyak klien email open-source hanya menggunakan sqlite di bawah kap mesin. Sudahkah Anda mencoba mencari file data Thunderbird dan menanyakannya dengan sqlite? - jcrawfordor
Hah? Terakhir kali saya mencoba ThunderBird, saya menemukan bahwa setiap pesan disimpan dalam file terpisah. Bahkan, banyak klien email yang saya coba seperti ini, termasuk Windows Mail (dan WMLive). (Meskipun itu tidak berarti bahwa mereka tidak juga membuat banyak file lain dan sampah.) - Synetech


Jawaban:


Maildir format untuk menyimpan surat telah diperkenalkan yang secara eksak melakukan apa yang Anda gambarkan: satu pesan disimpan dalam satu file terpisah.

Dan ada driver Maildir (backend) untuk beberapa klien email, dan beberapa agen pengiriman surat, dan beberapa penyedia akses email (IMAP atau POP atau antarmuka web).

Tentu saja, jika surat Anda disimpan di Maildir, paling mudah untuk meletakkannya di bawah kontrol versi biasa.

Jadi, Anda dapat mencari backend Maildir untuk klien email.

Tapi, sebenarnya, sinkronisasi penyimpanan email Anda bisa sedikit lebih rumit daripada menyinkronkan direktori file - karena berbagai flag (baru, baca), label, gerakan atau salinan pesan antar folder, dan--bagian yang paling sulit - ID pesan internal server yang digunakan oleh server akses surat (IMAP) atau klien email. Apa ID ini tentang? Nah, penting untuk menyimpan ID antara beberapa salinan penyimpanan email Anda agar, katakanlah, prosedur caching klien email Anda untuk berjalan dengan benar.

Saya telah menjelajahi masalah ini dan menulis beberapa catatan di sini: penelitian tentang CARA MEMBANTU akun IMAP. (Tapi kemudian saya tidak harus menyelesaikan tugas itu, jadi catatan dan solusi praktis saya tidak lengkap.)

Ide umum yang saya dapatkan adalah bahwa menggunakan klien email dan menempatkan Maildir di bawah kendali versi tidak memberikan Anda semua yang Anda inginkan dari mengelola revison penyimpanan surat Anda. Lebih baik menggabungkannya dengan server IMAP nyata (baik remote atau lokal) untuk akses seragam ke surat, dan dengan alat khusus yang berjalan di atas IMAP untuk melakukan sinkronisasi terhadap berbagai salinan / repositori / cabang penyimpanan email Anda (alat khusus akan urus bendera, label, ID dengan benar). Kontrol versi biasa adalah OK untuk memeriksa revisi dan untuk kembali ke revisi sebelumnya, tetapi untuk menggabungkan cabang (= sinkronisasi) saya akan mempertimbangkan prosedur yang lebih rumit:

Kamu ingin untuk menggabungkan cabang A dan B.

  • Jadi Anda siapkan negara baru (revisi) C yang akan menahan status gabungan dengan menyalin salah satunya, misalnya, salinan A ke yang baru C.
  • Kemudian Anda menggunakan alat (seperti "imapsync"; pilih yang sesuai dengan kebutuhan Anda; Saya telah mencantumkan beberapa alat seperti itu di catatan Saya) untuk membawa perubahan baru dari B ke C: imapsync B untuk C.

(ini mungkin berasumsi bahwa Anda mengakses penyimpanan email melalui IMAP melalui server)

  • Sekarang melakukan C (sebagai hasil penggabungan A dan B; sebelum ini, Anda mungkin menggunakan perintah yang tepat di VCS Anda untuk menuliskan informasi yang merupakan hasil penggabungan B untuk A, misalnya, sesuatu seperti "git merge B -s ours --no-commit" di C).

Silakan jelajahi detailnya sendiri, saya hanya memikirkan ide umum, dan saya tidak menjalankan prosedur seperti itu dalam praktik sekarang.

Saya pikir ini adalah tugas yang sangat menarik untuk dilakukan oleh utilitas terkenal yang biasa, saya ingin mendengar lebih banyak tentang pengaturan yang sukses untuk melakukan hal ini dengan orang lain!


AFAIR Saya memilih offlineimap untuk tugas saya membuat cadangan akun IMAP di Git. BTW di sini sebuah jawaban dengan contoh konfigurasi offlineimap.


5
2018-05-21 06:11



Mungkin, ada hal menarik di antara hasil pencarian Google, misalnya di antara maildir git imapsync, mis., HGM - maildir didistribusikan. - imz -- Ivan Zakharyaschev


Jawaban terbaik adalah menggunakan server yang dirancang untuk berbagi email antar klien - server IMAP. Hampir semua klien email akan dapat mengakses email di server tersebut. Anda dapat mengatur sendiri, di ubuntu, atau menggunakan Gmail, atau jika Anda menggunakan ISP untuk email Anda bahwa ISP mungkin akan mengizinkan akses IMAP ke email Anda di sana.


4
2018-05-21 05:41