web-dev-qa-db-ja.com

mbox形式のgetmailとDovecotを使用して、Office365のさまざまなフォルダーからメールを取得します

複数のフォルダー(メールボックス)を持つOffice 365アカウントを持っています。 getmailを使用すると、次の構成ですべてのメールボックスからすべての電子メールを取得できます。

[retriever]
type=SimpleIMAPSSLRetriever
server=<server>
port=<port>
username=<user>
password=<passwd>
mailboxes=ALL  

[destination]
type=Mboxrd
path=/var/mail/user
user=<user>

[options]
verbose=0
read_all=false
delete=false
delete_after=0
delete_bigger_than=0
max_bytes_per_session=0
max_message_size=0
max_messages_per_session=0
delivered_to=false
received=false
message_log=/home/user/getmail.log
message_log_syslog=false
message_log_verbose=true

/ var/mail/userのすべてのメールをmboxの形式でダウンロードします。この形式は、Dovecot1 でサポートされています。これらの電子メールをmboxファイルから取得し、Dovecotを介して表示するための私の構成)サーバーは次のとおりです。

disable_plaintext_auth = no
mail_privileged_group = mail
mail_location = mbox:~/:INBOX=/var/mail/%u
ssl = no
protocols = "imap"
listen = 127.0.0.1
userdb {
  driver = passwd
}
passdb {
  args = %s
  driver = pam
}
protocol imap {
}

それは機能し、すべての電子メールを表示しますが、問題は、Dovecotが各電子メールのメールボックスが何であるかを知らないことです。 mboxファイルを調べたところ、getmailが各メールのヘッダーX-getmail-retrieved-from-mailboxを追加していることがわかりました。しかし、IMAP経由でdovecotにアクセスすると、Office 365のような各フォルダーではなく、受信ボックスにすべての電子メールが表示されます。使用しているMUA(メールユーザーエージェント)はRoundcube。私の質問は、getmailとmbox形式を使用してDovecotでOffice365のすべてのフォルダーを表示するにはどうすればよいですか。

https://wiki2.dovecot.org/MailboxFormat/mbox

1
sinkmanu

これは正常です–各mboxファイルは正確に1つのメールボックス(フォルダー)に対応します。追加のフォルダは、(現在のDovecot構成に従って)~/の下に個別のmboxファイルとして保存する必要があります。

getmailのドキュメントをざっと読んだ後、getmail サポートしていません宛先メールボックスを動的に作成しているようです。 (受信者のアドレスに従ってソートされる「マルチ」宛先のみがありますが、送信元メールボックス名に従ってソートされる宛先はありません。)

たとえば、すべてのフォルダのクローンを作成できる他のツールがあります。

  • imapsync(IMAP→IMAPを使用、つまりDovecot自体を介してメッセージをアップロードする)
  • オフラインIMAP(IMAP→MaildirまたはIMAP→IMAPのいずれかを使用)

Mboxストレージ形式がどうしても必要な場合は、IMAP→IMAP同期ツールを使用して、Dovecotにmboxファイルの更新を処理させます(構成で既に行っているように)。

フォルダの場所を~/から~/Mail/に変更することも検討してください。そうしないと、Dovecotはホームディレクトリ全体をスキャンする必要があります。あなたが持っているフォルダを決定します。

1
user1686