Gmailのバックアップ環境を作る
June 30, 2019
構成 #
- getmailでGmailからIMAPで受信しMaildir形式で保存
- dovecotでMaildirをIMAPでLAN内に公開
- rainloopでブラウザから閲覧
- 受信のプッシュ通知とかは今のところ無し
getmail #
mailboxes に日本語の存在しないフォルダを指定するとエラーになる
#
- Ubuntu 18.04 LTS
- Python 2.7.15+
mailboxes = ALL
だと二重に受信しているような気がするので mailboxes = ("[Gmail].すべてのメール", )
としたとき
Unhandled exception follows:
File "/usr/bin/getmail", line 892, in main
success = go(configs, options.idle)
File "/usr/bin/getmail", line 171, in go
'permissions\n' % (mailbox.encode('utf-8'), o))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 8-14: ordinal not in range(128)
LC_ALL=ja_JP.UTF8 getmail ...
とする
% python -c 'import sys; print(sys.getdefaultencoding())'
ascii
上記は未解決だが,存在しないフォルダを指定したときのエラーメッセージを出そうとして死んでるみたいなので mailboxes を修正
mailboxes = ("[Gmail]/すべてのメール", )
dovecot #
% sudo apt install dovecot-imapd
- /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir:LAYOUT=fs
- /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain cram-md5
#!include auth-system.conf.ext
!include auth-passwdfile.conf.ext
- /etc/dovecot/users
<username>:{CRAM-MD5}xxx ... xxx:<uid>:<gid>::<homedir>
パスワード部分は doveadm pw -s CRAM-MD5
で生成
% sudo chown root:dovecot users
% sudo chmod 640 users
plaintext認証でログインできない #
/var/log/mail.log
には下記のようなログが残る
dovecot: imap-login: Aborted login (no auth attempts in 0 secs): user=<>, rip=X.X.X.X, lip=X.X.X.X, session=<XXXXXXXXXXXXXXX>
SSL無効だとplaintext認証が無効になる
解除するには/etc/dovecot/conf.d/10-auth.conf
にdisable_plaintext_auth = no
ついでに古いメーラーのメールもMaildirにぶっこむ #
-
Outlook Express 6
- OutlookExpress-To - OE5/6 Multi Converterの詳細情報 : Vector ソフトを探す!
- UNIX mbox形式でエクスポート
- mb2mdでMaildir形式に変換
- Converting Mbox mailboxes to Maildir format
mb2md -s hoge.mbox -d ~/destdir
-
- メールを選択→ファイル→エクスポート
- 形式を「再構成して保存(添付ファイル付き)」
- 区切りを「UNIX MBOX」にして エクスポート
- mb2mdでMaildir形式に変換
変換失敗? #
EdMaxでエクスポートしたファイルを変換するとメール数が減ってる
% grep ^From\\s bar.mbox | wc -l
423
% mb2md -s bar.mbox -d ~/temp
Converting /home/foo/bar.mbox to maildir: /home/foo/temp
Source Mbox is /home/foo/bar.mbox
Target Maildir is /home/foo/temp
333 messages.
90通減ってる?
“From " で始まる行の前に空行が無いと前のメールと同じメールとして変換されてしまう
適当に修正
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
my $prev_line = '';
while(<STDIN>)
{
if (/^From\s/ && $prev_line !~ /^$/) {
print "\n";
}
print;
$prev_line = $_;
}
rainloop #
- GitHub - pierre-alain-b/rainloop-nextcloud: Rainloop plugin for Nextcloud
- RainLoop - アプリ - App Store - Nextcloud
- How to enable CRAM MD5 for IMAP and or SMTP · RainLoop/rainloop-webmail Wiki · GitHub