mbsync
翻訳元:https://isync.sourceforge.io/mbsync.htmlmbsync
名前
使用法
説明
オプション
設定
全てのストア
Maildir ストア
IMAP4 アカウント
IMAP ストア
チャンネル
グループ
グローバルオプション
コンソール出力
推奨事項
固有の問題
ファイル
関連項目
著者
mbsync - IMAP4 と Maildir のメールボックスを同期する
mbsync
[options ...]
{{channel[:box[{,|\n}...]]|group}
...|-a}
mbsync --list-stores [options ...] [store
...]
mbsync は
コマンドラインアプリケーションで、メールボックス(現在は Maildir および IMAP4)を同期します。新規メッセージ、メッセージの削除、フラグの変更は双方向に伝搬できます。どの操作を行うかは細かく選択可能です。
同期はユニークなメッセージ識別子(UID)に基づいて行われるため、他のメール同期ツールのように衝突が発生しません。しかし一方で、mbsync は UID 有効性の変更に影響を受けます(根拠のない変更なら問題なく復旧します)。同期状態は各メールボックスペアごとにローカルのテキストファイルに保持され、これらのファイルは同時実行する mbsync プロセスから保護されています。mbsync が動作している間でもメールボックスは安全に変更可能です(下記 INHERENT PROBLEMS の小さな例外を参照)。各メールボックスの複数のレプリカを保持することもできます。
オプション
Section titled “オプション ”-c, --config file
構成を file から読み込みます。デフォルトでは、$XDG_CONFIG_HOME/isyncrc が読み込まれ、それが存在しない場合は順番に ~/.mbsyncrc が試されます。$XDG_CONFIG_HOME は未設定の場合、~/.config がデフォルトになります。
-a, --all
すべての設定された Channel を選択します。コマンドラインで指定した Channel/Group は無視されます。
-l, --list
何も同期せず、選択された Channel で利用可能なすべてのメールボックスを列挙して終了します。
-ls, --list-stores
何も同期せず、選択された Store に含まれるすべてのメールボックスを列挙して終了します。Store が指定されていない場合は、すべての構成済み Store が列挙されます。これは生の Store 内容で、Channel の Patterns でフィルタされていません。このオプションは Store の構成を検証する際に役立ちます。
-C[f][n], --create[-far|-near]
構成ファイルにある Create オプションを上書きします。詳細は下記を参照してください。
-R[f][n], --remove[-far|-near]
構成ファイルにある Remove オプションを上書きします。詳細は下記を参照してください。
-X[f][n], --expunge[-far|-near]
構成ファイルにある Expunge オプションを上書きします。詳細は下記を参照してください。
{-n|-o|-u|-g|-f|-0|-F},
{--new|--old|--upgrade|--gone|--flags|--noop|--full}
{-L|-H}[n][o][u][g][f],
{--pull|--push}[-new|-old|-upgrade|-gone|-flags]
構成ファイルにある Sync オプションを上書きします。詳細は下記を参照してください。
-h, --help
コマンドラインオプションの概要を表示します。
-v, --version
バージョン情報を表示します。
-y, --dry-run
シミュレーションモードで起動します。この場合、Channel の状態を確認し、必要な操作をすべて判断しますが、メールボックスや状態ファイルには変更を加えません。
-e, --ext-exit
拡張終了コードを返します。far 側または near 側に変更が発生した場合は、それぞれ 32 または 64 を加算します(両方に変更があれば合計 96)。エラーがあった場合でも同時に報告されるため、たとえば 65 のような終了コードになることがあります(これは、far 側からの一部のプルは成功したが、他が失敗した場合など)。
-V, --verbose
詳細モードを有効にし、現在行われている処理を表示します。
-D[C][d|D][m][M][n|N][s],
--debug[-crash|-driver|-driver-all|-maildir|-main|-net|-net-all|-sync]
デバッグカテゴリを有効にします:
C, crash - 組み込みのクラッシュハンドラを使用
d, driver - ドライバ呼び出しを出力(メタデータのみ)
D, driver-all - ドライバ呼び出しを出力(メッセージを含む)
m, maildir - maildir のデバッグ情報を出力
M, main - メインのデバッグ情報を出力
n, net - ネットワーク通信(プロトコルのみ)を出力
N, net-all - ネットワーク通信(ペイロードを含む)を出力
s, sync - 同期のデバッグ情報を出力
crash を除くすべてのカテゴリは、暗黙的に verbose モードを有効にします。カテゴリを指定しない場合は、net-all を除くすべてのカテゴリが有効になります。
-q, --quiet
進行状況カウンタ(これは標準出力が TTY でない場合、またはデバッグカテゴリが有効な場合に暗黙的に抑制される)、通知、サマリを抑制します。2 回指定すると警告メッセージも抑制されます。
構成ファイルは必須であり、mbsync はこれがないと実行できません。先頭がハッシュ(#)の行はコメントとして無視されます。構成項目はキーワードと 1 つ以上の引数で構成されます。引数にスペースが含まれる場合はダブルクォート(")で囲む必要があり、ダブルクォートとバックスラッシュ(\)はバックスラッシュでエスケープする必要があります。すべてのキーワード(引数として使用されるものも含む)は大文字・小文字を区別しません。Bash 形式のホームディレクトリ展開(~)はローカルパスを表すオプションですべてサポートされています。相対的なローカルパスの基準点は、構成ファイルがあるディレクトリです。
わずかなグローバルオプションを除いて、他のオプションは特定のセクションに適用されます。セクションはセクション開始キーワードで始まり、空行またはファイル終端で終了します。各セクションは、そのオブジェクトクラス内でユニークな識別子を定義します。
基本的なオブジェクトクラスは 2 つあります: Store と Channel です。Store はメールボックスの集合を定義します(ローカルまたはリモート)。Channel は 2 つの Store をつなぎ、同期の方法を記述します。
補助的なオブジェクトクラスとして、Account と Group があります。Account はネットワーク Store の接続部分を定義し、複数の Store 間でサーバ設定を共有できるようにします。Group は複数の Channel をまとめて、コマンドラインで入力を省略できるようにします。
ファイルシステム上の位置(特に Path と Inbox)は Store ごとに異なるパス区切り文字を使用する場合があります。
一方、メールボックス名は常に Unix 形式のスラッシュで区切られた形式を使用します。
全てのストア
Section titled “全てのストア ”以下のオプションはすべての Store タイプで使用できます。
「反対側の Store」とは、Channel 内でペアになっているもう一方の Store のことを指します。
特別なメールボックス INBOX はすべての Store に存在します。その物理的な位置は Store タイプによって異なります。
Path path
Store(サーバ)のファイルシステム上にあるストアの場所を指定します。これが絶対パスでない場合、その解釈は Store タイプに依存します。この文字列は、この Store で指定されたメールボックス名の前に付与されますが、メールボックス名の一部とはみなされません。これは Patterns や Create(Channel セクション)の扱いに重要です。ディレクトリを指定したい場合は末尾に必ずスラッシュをつけてください。(デフォルト: なし)
MaxSize size[k|m][b]
size バイト以上のメッセージがこの Store に伝搬される際は、小さなプレースホルダーメッセージのみが伝搬されます。これは大きな添付ファイルを含むメッセージを必要になるまでダウンロードしないようにするのに便利です。プレースホルダーを実際のメッセージにアップグレードするには、そのメッセージにフラグを付け、Upgrade 操作を実行する必要があります。注意点として、全く参照しない Store(通常はサーバ側)にこの設定をすると、アップグレードが行われないので注意が必要です。また、フラグをアップグレード要求として利用するため、プレースホルダーメッセージをアップグレードするまでは、そのメッセージのフラグ変更はどちらの Store にも伝搬されません。
サイズ指定に K や M を付けると、それぞれ KiBytes や MeBytes を意味します。B は指定可能ですが意味はありません。size に 0 を指定すると無制限になります。(デフォルト: 0)
MapInbox mailbox
(Path に対して)INBOX を別名として仮想的にメールボックスを作成します。Channel セクションの Patterns と組み合わせた場合に有用ですが、Maildir の near 側を使う場合は、代わりに Path の下に Inbox を配置するほうが一般的かもしれません。この仮想メールボックスにはサブフォルダがありません。
Flatten delim
この Store の階層構造を平坦化します。具体的には、/(共通の階層区切り文字)を delim に置き換えます。Mutt のように階層的メールボックスをうまく扱わない MUA のために便利です。よくある区切り文字は . です。
このオプションを使うと、INBOX のサブフォルダは常に Path の下に配置され、「INBOXdelim」というプレフィックスを含むことに注意してください。
Trash mailbox
メッセージを最終的に削除(expunge)する前に、この Trash にコピーします。下記 RECOMMENDATIONS と INHERENT PROBLEMS も参照してください。(デフォルト: なし)
TrashNewOnly yes|no
削除時にコピーする対象を、まだ反対側へ伝搬されていないメッセージのみに制限します。これは、反対側の Store でも Trash を設定し(TrashNewOnly no)、そちらで全メッセージがゴミ箱に入れられる構成にする場合に便利です。(デフォルト: no)
TrashRemoteNew yes|no
反対側の Store で expunge を実行する際、まだ反対側へ伝搬されていないメッセージを、この Store の Trash にコピーします。これを使うと、反対側の Store に Trash がなくても、すべてのメッセージをアーカイブすることができます。(デフォルト: no)
Maildir ストア
Section titled “Maildir ストア ”相対的な Path は、構成ファイルのあるディレクトリを基準に解釈されます。
mbsync は UIDs を必要としますが、Maildir のための標準化された UID 格納方式は存在しません。そのため mbsync は 2 つの方式をサポートしており、それぞれ一長一短があります。
native 方式は、最新の c-client 用 Maildir パッチから流用されたもので、pine と互換性があります。UID 有効値は .uidvalidity というファイルに格納され、メッセージのファイル名に UIDs がエンコードされます。
alternative 方式は、isync バージョン 0.8 および 0.9.x が使用していた UID マッピングに基づきます。メッセージのファイル名の不変部分をキーとして Berkeley DB (.isyncuidmap.db) に対応する UID が記録されます。
native 方式は高速でスペース効率が良くエンディアン非依存で「人間が読める」形式ですが、他のメールボックスからメッセージを新しいファイル名に変更せずにコピーした場合に破綻します。いずれ重複した UID が発生し、それにより UID 有効値の変更が起こって同期が失敗します。alternative 方式の場合、MUA がメッセージのファイル名を mbsync が不変とみなす部分で変更すると、削除と新規作成として扱われ、不要な通信が発生します。
Mutt は両方式とも問題なく動作することが知られています。
mdconvert を使うと、ある方式から別の方式へメールボックスを変換できます。
MaildirStore name
Maildir ストア name を定義し、そのパラメータ用セクションを開始します。
AltMap yes|no
この Store 内のメールボックスに alternative UID 格納方式を使用します。すでに UID 格納方式を持つメールボックスには影響しません。方式を変えるには mdconvert を使用してください。下記 RECOMMENDATIONS も参照。(デフォルト: no)
Inbox path
この Store の INBOX の場所を指定します。これは Path とは無関係ですが、同じディレクトリ配下に INBOX を置くこともできます。(デフォルト: ~/Maildir)
InfoDelimiter delim
メッセージファイル名のベースネームと info フィールドを区切る文字を指定します。Maildir 標準ではコロンですが、DOS/Windows ファイルシステムとの互換性がありません。(デフォルト: FieldDelimiter の値)
SubFolders Verbatim|Maildir++|Legacy
階層的メールボックスをオンディスクでどのように管理するかを指定します。このオプションは Flatten が使用されている場合は効果がありません。
たとえば、top/sub/subsub および INBOX/sub/subsub というメールボックスがあるとき、それぞれの実際のディレクトリは以下のようになります:
Verbatim - Path/top/sub/subsub および Inbox/sub/subsub(一般的に使いたい形式)
Maildir++ - Inbox/.top.sub.subsub と Inbox/..sub.subsub(Courier や Dovecot と互換性がありますが、メールボックスメタデータ形式は互換性がありません)。このモードでは Path を設定しようとするとエラーになります。
Legacy - Path/top/.sub/.subsub および Inbox/.sub/.subsub(mbsync の旧来形式)
(デフォルト: 未設定。サブフォルダが見つかった場合はエラーを発生)
IMAP4 アカウント
Section titled “IMAP4 アカウント ”IMAPAccount name
IMAP4 アカウント name を定義し、そのパラメータ用セクションを開始します。
Host host
IMAP サーバの DNS 名または IP アドレスを指定します。
Tunnel を使用する場合、この設定は TLSType が None ではなく、かつ CertificateFile を使用していない場合にのみ必要です。つまりサーバ証明書のホスト名検証に使用されます。
Port port
IMAP サーバの TCP ポート番号を指定します。(デフォルト: IMAP は 143、IMAPS は 993)
Tunnel を使用している場合、この設定は無視されます。
Timeout timeout
IMAP サーバへの接続およびデータ転送のタイムアウト秒数を指定します。0 は無制限です。(デフォルト: 20)
User username
IMAP サーバへのログイン名を指定します。
UserCmd [+]command
username を直接指定せず、シェルコマンドを実行して取得します。ユーザー名取得をスクリプト化したい場合に有用です。
コマンドは標準出力に 1 行だけ出力しなければなりません。行末の改行はあってもなくても可です。+ を前置すると、コマンドが TTY 出力(プロンプトなど)を行うことを示します。ダブルクォートやバックスラッシュをコマンドに含める場合はエスケープしてください。
Pass password
IMAP サーバの username に対応するパスワードを指定します。このオプション自体は必須ではありません。パスワードが指定されていない場合、mbsync はパスワード入力を促します。
PassCmd [+]command
パスワードを直接指定する代わりに、シェルコマンドを実行して取得します。パスワードファイルやエージェントの利用をスクリプト化できます。
詳細は UserCmd を参照してください。
UseKeychain yes|no
macOS の Keychain を使用してパスワードを取得するかどうか。(デフォルト: no)
必要なキーチェーンアイテムを作成するには、以下のようにします:
security add-internet-password -r imap -s Host -a User -w password [ -T /path/to/mbsync ]
Tunnel command
TCP ソケットを開く代わりに指定されたコマンドを実行して接続します。SSH トンネル経由で IMAP セッションを行う場合などに使われます。
AuthMechs type ...
許容する認証方式のリストを指定します。SASL レジストリに掲載されている機構のほか、IMAP の LOGIN 機構も使用できます。ワイルドカード * は現在の TLSType 設定で安全とみなされる機構をすべて表します。実際に使用される機構は、このリスト、サーバ側リスト、およびインストールされている SASL モジュールの共通部分のうち最も安全なものになります。(デフォルト: *)
TLSType {None|STARTTLS|IMAPS}
接続のセキュリティ/暗号化方式を選択します:
None - セキュリティなし。Tunnel を使用している場合はこれがデフォルトです(トンネルは通常安全であるため)。
STARTTLS - ポート 143 で通常の IMAP 接続を確立した後、STARTTLS 拡張を用いて暗号化します。ほとんどのサーバがサポートしており、(トンネル未使用時の)デフォルトです。
IMAPS - ポート 993 (安全な IMAP) への接続時にすぐ TLS で暗号化を行います。
TLSVersions {+|-}{1.0|1.1|1.2|1.3} ...
指定した TLS バージョンを許容リストに追加/削除します。サーバが新しいバージョンへの対応に問題がある場合のみ古いバージョンを使用してください。OpenSSL が対応している場合、新しいバージョンは mbsync が認識していなくても自動的に有効化されます。(デフォルト: 1.2 以降)
SystemCertificates yes|no
システム標準の CA(認証局)証明書ストアをサーバ証明書チェーンの検証に使用するかどうか。(デフォルト: yes)
CertificateFile path
サーバの証明書を検証するために使用される X.509 証明書を格納したファイルを指定します。2 種類の証明書を含めることができます:
|
Host |
これらの証明書は受信したサーバ証明書そのものとしか照合されず、常に有効と見なされます。代表例としては、有効期限切れの証明書を強制的に受け入れる場合などです。 |
これらの証明書は mbsync-get-cert ツールで取得できます。信頼前にフィンガープリントを確認するか、サーバのネットワークが安全に信頼できる場合に転送してください。
|
CA |
これらの証明書は、受信したサーバ証明書のチェーンを構築・検証する際の信頼の起点として使用されます。SystemCertificates の設定によってはシステムのトラストストアを補完または置き換える形になります。システムのトラストストアそのものを指定する必要はなく、推奨もされません。チェーンはすべて検証されます。 |
ClientCertificate path
サーバに送信するクライアント証明書が格納されたファイルを指定します。ClientKey も指定する必要があります。
通常はサーバ側でクライアント証明書検証が不要なので、このオプションはあまり必要になりません。
ClientKey path
ClientCertificate に対応する秘密鍵を格納したファイルを指定します。
CipherString string
TLS バージョン 1.2 まで(1.3 以降は対象外)の接続で使用する OpenSSL の暗号スイート文字列を指定します。形式は ciphers(1) を参照してください。(デフォルト: 空文字で、システムワイドポリシーに従う)
PipelineDepth depth
IMAP コマンドを同時に送信できる最大数を指定します。1 を指定するとパイプライン化を無効にします。これは主にデバッグ用ですが、平均帯域幅を制限したい場合(GMail は非常に高速な接続だと制限が必要かもしれません)や、Microsoft Exchange のような不安定なサーバを扱う場合にも有用です。(デフォルト: 無制限)
DisableExtension[s] extension ...
特定の IMAP 拡張の使用を無効化します。サーバ(あるいは mbsync 自体)にバグがある場合の回避策として使用します。(デフォルト: なし)
IMAP ストア
Section titled “IMAP ストア ”相対的な Path は、サーバが好む場所(ユーザーの $HOME や $HOME/Mail など)を基準に解釈される場合があります。INBOX の場所もサーバ依存であり、通常は気にする必要はありません。
IMAPStore name
IMAP4 ストア name を定義し、そのパラメータ用セクションを開始します。
Account account
どの IMAP4 アカウントを使用するかを指定します。Account を定義し、ここで参照する方法の代わりに、Account のオプションをすべて直接この Store のセクション内で指定することもできます(ひとつの Store のみで使う場合に有用)。
UseNamespace yes|no
サーバの最初の「個人用」NAMESPACE をメールボックス名の前に付与するかどうかを指定します。これを無効にすると壊れた IMAP サーバに対処できる場合があります。Path を指定した場合、このオプションは意味を持ちません。(デフォルト: yes)
PathDelimiter delim
サーバの階層区切り文字を指定します。(デフォルト: サーバの最初の「個人用」NAMESPACE から取得)
これを乱用して階層を再解釈しようとしないでください。Flatten を使用してください。
SubscribedOnly yes|no
IMAP サーバでサブスクライブされているメールボックスのみを同期するかを指定します。技術的には、このオプションが有効な場合、mbsync は LSUB コマンドを、無効なら LIST コマンドを使用してメールボックス一覧を取得します。このオプションは Patterns と組み合わせて使用する場合に意味があります。(デフォルト: no)
チャンネル
Section titled “チャンネル ”Channel name
チャンネル name を定義し、そのパラメータ用セクションを開始します。
{Far|Near} :store:[mailbox]
このチャンネルで接続する Far 側および Near 側の Store を指定します。Patterns を指定している場合、mailbox はプレフィックスとみなされ、パターンマッチの対象にはならず、メールボックス一覧の上書きにも影響しません。もし mailbox が省略されていれば、INBOX が使われます。
Pattern[s] [!]pattern ...
1 つのメールボックスペアではなく、指定した pattern(複数可)にマッチするすべてのメールボックスを同期します。メールボックス名は Far 側・Near 側とも同一とみなされます。パターンは IMAP4 パターンで、* はあらゆる文字列に、% は次の階層区切り文字までにマッチします。! を付けると除外パターンとなります。複数のパターンを指定した場合、あとから指定したパターンが優先されます。
INBOX は、Path の下にある場合を除き、ワイルドカードでマッチしない点に注意してください。
Patterns で選択されたメールボックス一覧は、Channel 参照(Group 指定やコマンドライン)で上書き可能です。
例: "Patterns % !Trash"
MaxSize size[k|m][b]
Store セクションにある同名オプションと同様ですが、Far と Near の両方に適用されます。実際には Store を修正していることになるので、複数の Channel で同じ Store を使う場合、競合が発生しないよう注意してください。
MaxMessages count
Near 側の各メールボックスに保持する最大メッセージ数を設定します。例えばサーバ側には完全なアーカイブを保持しつつ、Near 側には最新の数通だけミラーしたいときなどに使います。そのメールボックスに最初に到着したメッセージ(実際の日付ではなく到着順)から削除されていきます。Flags(重要フラグ)や既定では未読メッセージは自動削除から除外されます。count が 0 の場合は無制限です。(グローバルデフォルト: 0)
ExpireUnread yes|no
未読メッセージを MaxMessages の対象に含めるかどうかを指定します。通常、未読メッセージは重要なものとして扱われ、自動削除されません。長期不在時でも新着メッセージを見落とさないようにするためです。しかし、大量の未読メールを意図的にアーカイブしている場合は MaxMessages をほぼ無効化してしまうので、このオプションを有効にする必要があります。(グローバルデフォルト: no)
ExpireSide Far|Near
MaxMessages が設定されている場合にメッセージを削除(expire)する対象を指定します。(グローバルデフォルト: Near)
Sync {None|[Pull] [Push] [New] [Old] [Upgrade] [Gone] [Flags] [Full]}
同期操作を選択します:
Pull - Far 側から Near 側への変更を伝搬します。
Push - Near 側から Far 側への変更を伝搬します。
New - 新たに現れたメッセージを伝搬します。
Old - 以前スキップされたメッセージや失敗したメッセージ、期限切れメッセージを伝搬します。この操作はコストが高く、エラーメッセージを繰り返し出す可能性があるため、明示的に指定しないと有効になりません。
Upgrade - プレースホルダーを実際のメッセージにアップグレードします。これは MaxSize が設定されている場合にのみ有用です。
Gone - メッセージの消失を伝搬します。これは実際に削除済み(expunged)になったメッセージに対してのみ適用され、反対側の Store では削除フラグが付与されるだけです。実際の削除には expunge が必要です。
Flags - フラグの変更を伝搬します。Deleted/Trashed もフラグの一種であり、mutt の maildir_trash オプションを使用する場合などに特に関係します。
Full - "New Upgrade Gone Flags" のエイリアスです。
None (--noop 相当) - 何も伝搬しません。expunge のみ行いたい場合に使います。
Pull と Push は方向を示すフラグで、New、Old、Upgrade、Gone、Flags は操作種別のフラグです。2 次元のマトリックス(表)を想定すると理解しやすいでしょう。
最初のスタイルでは、方向フラグを指定しなければ両方向、操作種別フラグを指定しなければ Full、という具合にそれぞれが行や列の全体を示します。たとえば "Sync Pull New Flags" は Far 側から Near 側へ新規メッセージとフラグ変更だけを伝搬し、"Sync New Gone" は両側で新規メッセージと削除を伝搬します。
2 番目のスタイルでは、方向フラグと操作種別フラグを直接連結した複合フラグも使えます。加えて個別のフラグを指定すれば、その行や列を一度に指定できますが、Old は常に明示的に指定が必要です。たとえば "Sync PullNew PullGone Push" は Far 側から Near 側への新規メッセージと削除を伝搬し、Near 側から Far 側へ(Old 以外の)変更をすべて伝搬します。
同じセルを重複して指定するとエラーになります(例: "Sync PullNew Pull" など)。
None は他の操作と併用できません。
Create {None|Far|Near|Both}
同期対象のメールボックスが存在しない場合、自動的に作成するかどうかを指定します。存在せず同期状態もないメールボックスが見つかったときに、作成する側を指定します。自動作成しない場合はエラーとなり、そのメールボックスペアはスキップされます。(グローバルデフォルト: None)
Remove {None|Far|Near|Both}
メールボックスの削除を伝搬するかどうかを指定します。同期状態が存在するのに、メールボックスが見つからない場合にどちらの側を削除対象とするかです。
MailDir メールボックスの場合は、cur/ サブディレクトリを削除するだけで削除されたとみなせます。これは SyncState * との互換性を確保します。
安全のため、非空メールボックスは削除しません。
(グローバルデフォルト: None)
Expunge {None|Far|Near|Both}
削除フラグが付いたすべてのメッセージを(Far/ Near 側で)完全に削除するかを指定します。同じ側に対して ExpungeSolo と排他使用です。下記 RECOMMENDATIONS 参照。(グローバルデフォルト: None)
ExpungeSolo {None|Far|Near|Both}
削除フラグが付いていて、かつ反対側に対応するメッセージが存在しないものだけを(Far/ Near 側で)完全に削除します。Sync Gone と組み合わせると削除のミラーリングが可能になります。ただし、他で削除を実行する仕組みがあると矛盾が生じる恐れがあります。また、UIDPLUS 拡張をサポートしない IMAP ストアでは動作しません。同じ側に対して Expunge と排他使用です。(グローバルデフォルト: None)
CopyArrivalDate {yes|no}
メッセージとともに到着時刻(internal date)を伝搬するかどうかを指定します。時刻ベースのソートを維持したい場合に有用です。IMAP では internal date の定義が厳密ではありませんが、概ね到着時刻と近いことが多いです。(グローバルデフォルト: no)
Sync、Create、Remove、Expunge、ExpungeSolo、MaxMessages、ExpireUnread、ExpireSide、CopyArrivalDate は、いずれもセクションの外でグローバルに指定できます。グローバル設定は Channel 特有の設定に上書きされ、さらにコマンドラインオプションで上書きされます。
SyncState {*|path}
このチャンネルの同期状態ファイルの場所を指定します。* を指定すると .mbsyncstate というファイルを Near 側のメールボックスに直接置きます(Maildir にしか使えません)。* ではない場合は、Near 側メールボックス名の前に付ける文字列として解釈されます。パスをディレクトリとして指定したい場合は末尾にスラッシュが必要です。
このオプションはセクション外で指定してグローバルに適用することもできます。その場合、付加される文字列は
:far-store:far-box_:near-store:near-box
という形式になります(FieldDelimiter も参照)。
(グローバルデフォルト: $XDG_STATE_HOME/isync/、~/.local/state/isync/ または ~/.mbsync/(レガシー) もし前者が存在しない場合。$XDG_STATE_HOME は未設定の場合 ~/.local/state です。)
Group name [channel[:box[,...]]] ...
グループ name を定義し、そのパラメータ用セクションを開始します。なお、Group には独自の名前空間があるため、同名の Channel と衝突した場合はコマンドライン上で Group が優先されます。
1 行に複数の Channel を指定することができます。
もし channel に 1 つ以上の box を指定すると、Channel の Patterns で指定されたものの代わりにこれらのメールボックスを同期対象とします。同様のことはコマンドラインでも行えます。コマンドラインでは改行でメールボックス名を区切ることもできます。
Channel[s] channel[:box[,...]] ...
指定したチャンネルをグループに追加します。このオプションはグループ内で複数回指定できます。
グローバルオプション
Section titled “グローバルオプション ”FSync yes|no
強制的な書き込み(fsync)を mbsync が行うかどうかを選択します。これによりシステムクラッシュや停電後のデータ安全性が変わります。data=ordered モードでマウントされたファイルシステムでは無効でも比較的安全ですが、data=writeback では有効にするのが賢明です。古いファイルシステムではオーバーヘッドが大きすぎるかもしれません。(デフォルト: yes)
FieldDelimiter delim
グローバル SyncState に付加する文字列内でフィールドを区切る文字を指定します。mbsync はコロンを好みますが、DOS/Windows での互換性を考える場合もあります。SyncState が * の場合このオプションに意味はありませんが、InfoDelimiter のデフォルト値にも影響します。(グローバルデフォルト: Windows では ;、それ以外では :)
BufferLimit size[k|m][b]
1 Channel あたり、かつ 1 方向あたりで、mbsync が同時に使用するメモリがこの値を上回らないようにします。これは絶対制限ではなく、単一メッセージのサイズがこの値を超える場合もあります。(デフォルト: 10M)
コンソール出力
Section titled “コンソール出力 ”標準出力がコンソールに接続されている場合、mbsync はデフォルトで進行状況カウンタを表示します。出力は以下のような例になります:
C: 1/2 B: 3/4 F: +13/13 *23/42 #0/0 -0/0 N: +0/7 *0/0 #0/0 -0/0
これは、全 Channel、全メッセージボックス、および Far/Near 両側で処理されたメッセージの累積状況を表します。加えられたメッセージ、フラグの更新があったメッセージ、ゴミ箱へ移動したメッセージ、expunge されたメッセージ数を示しています。最終的な合計を事前に計算しないため、同期の進行に伴って数値が増えていきます。
リダイレクトされていない場合でも、mbsync は終了時に上記のサマリを表示します(quiet モードを除く)。
IMAP サーバが自動的に削除フラグ付きメッセージを即時削除(auto-expunge)しないようにするのが望ましいです。パフォーマンスが低下し、意味的にも疑問が残ります。具体的には、Gmail ではこれを無効化する設定が必要です。
デフォルトでは、mbsync はメッセージを実際には削除しません。expunge は削除フラグを反対側の Store に伝搬するだけです。一度セットアップが正しく機能するのを確認してから、Expunge に Both を設定して実際の削除が反映されるようにするのが一般的です。
mbsync の組み込み Trash 機能は、削除フラグがすでについたメッセージの削除(expunge)を mbsync が伝搬する場合に作用します。ゴミ箱のあるストア(通常は IMAP サーバ)側で削除が伝搬されたときにゴミ箱へコピーされる仕組みです。
一方、まだ伝搬されていないメッセージをゴミ箱に入れたい場合(Mutt の maildir_trash など)は、メッセージを削除フラグ付きにしつつ expunge しない運用が必要です。しかし多くの場合、削除される前にすでにメッセージは伝搬されており、そこまで最適化したくない場合が多いです。そのため TrashNewOnly と TrashRemoteNew はあまり使われないことが多いです。
もしサーバ側が自動的なゴミ箱移動(Gmail がそうです)をサポートしている場合、mbsync の Trash 機能よりそちらに任せるほうが簡単です。その際、ゴミ箱を他のメールボックス同様に同期したいなら、mbsync の Trash オプションは設定しないでください。
M$ Exchange 2013 を使用する場合、サーバのバグにより DisableExtension MOVE を設定しないと、Trash 機能が動作しない可能性があります。
デフォルトのより効率的な UID マッピング方式(native)を使用する場合、Maildir フォルダ間でメッセージを移動するときに MUA がファイル名を再生成する必要があります。Mutt は常に新しいファイル名を使用しますが、mu4e は設定が必要です:
(setq mu4e-change-filenames-when-moving t)
一般的には、新しいメッセージと同じように完全に新しいファイル名が生成されることが望ましいですが、,U=xxx を取り除くだけでも問題ありません。
固有の問題
Section titled “固有の問題 ”メッセージ一覧を取得した後に行われた変更は、次回 mbsync を実行するときまで同期されません。
Trash を UIDPLUS をサポートしない IMAP ストア(M$ Exchange 2010 以前など)で使用すると、競合条件が発生します: メッセージ一覧を取得した後、expunge する前に削除フラグが付けられたメッセージは失われる可能性があります。他のクライアント(mbsync も含む)が同時にアクセスしていなければ問題はありません。
$XDG_CONFIG_HOME/isyncrc (通常 ~/.config/isyncrc)
デフォルトの構成ファイル。ドキュメントディレクトリにサンプルファイルがあります。
$XDG_STATE_HOME/isync/ (通常 ~/.local/state/isync/)
同期状態ファイルを格納するディレクトリ。
~/.mbsyncrc
レガシー構成ファイル。
~/.mbsync/
レガシーの同期状態ファイル格納ディレクトリ。
mdconvert(1), mutt(1), maildir(5)
最新情報は http://isync.sf.net/ を参照してください。
SASL 機構のリストは http://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml に掲載されています
最初は Michael R. Elkins によって書かれ、その後 Oswald Buddenhagen によって書き直され、現在メンテナンスされています。その他多くの人々による貢献があります。詳細は AUTHORS ファイルを参照してください。