私のサーバーでは通常、問題に直面します。さまざまな電子メール クライアントが、 や などの特別なフォルダーをSent
やなどTrash
のさまざまな名前で呼び出します。Sent Items
Deleted Items
私の質問は、何らかの方法でこれらすべての名前を「エイリアス」し、Sent
サーバー上の同じフォルダーに内部的にマップできるかどうかです。
dovecot.conf
次のように、include セクションを変更することができました。
mailbox Sent {
special_use = \Sent
auto=subscribe
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox "Sent Items" {
special_use = \Sent
}
これは、この厄介な問題を「修正」する正しい方法でしょうか? 機能しているように見えますが、少なくともサーバー上では実際には重複は発生しません。ただし、一部の電子メール クライアントでは、重複したフォルダーがすべて選択される可能性があります。
ありがとう。
答え1
あなたはメールボックスエイリアスプラグインDovecot 2.1.10+ が必要です。これにより、ファイルシステム レベルでシンボリック リンクが作成され、1 つのディレクトリに複数の名前が提供されます。両方のディレクトリの内容は同じです。
設定例送信済みそしてごみエイリアス「送信済みアイテム」と「削除済みアイテム」の実際のメールボックスは次のとおりです。
mail_plugins = $mail_plugins mailbox_alias
plugin {
mailbox_alias_old = Trash
mailbox_alias_new = Deleted Items
mailbox_alias_old2 = Sent
mailbox_alias_new2 = Sent Items
}
メールボックスを作成することを忘れないでください:
namespace inbox {
mailbox Sent {
auto = create # or subscribe
special_use = \Sent
}
mailbox Trash {
auto = create
special_use = \Trash
}
}
もう一つの可能性は、あなたが言ったように2つの異なるメールボックスを作成することです。conf.d/15-mailboxes.conf
namespace inbox {
# For \Sent mailboxes there are two widely used names. We'll mark both of
# them as \Sent. User typically deletes one of them if duplicates are created.
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
}
この方法を使用すると、2 つの異なる送信済みボックスが作成されます。ユーザーがそのうちの 1 つを削除しても、もう 1 つは変更されずに残ります。
答え2
プラグインを使用する必要はありません。vmail ディレクトリに移動します。例:
cd /var/vmail/example.com/exampleUser/
次に、たとえば、"Sent Messages"
フォルダーに保存されているすべてのメッセージをフォルダーに保存したい場合は、最初の手順として、クライアントを介して"Sent"
のファイルを に移動するだけです。"Sent Messages"
"Sent"
次に、/var/vmail/example.com/exampleUser/mail
フォルダー内の隠しフォルダーを削除します"Sent Messages"
。
rm -r /var/vmail/example.com/exampleUser/mail/.Sent\ Messages
他のメールを送信する前に、次"Sent"
の隠しフォルダーへのシンボリック リンクを追加します"Sent Messages"
(ここの行は長いので、コピーして貼り付ける場合は注意してください)。
ln -s /var/vmail/example.com/exampleUser/mail/.Sent /var/vmail/example.com/exampleUser/mail/.Sent\ Messages
これは問題なく動作するはずです。 または 、あるいは他のフォルダーを 1 つのフォルダーにシンボリックリンクする場合"Sent Items"
、"Mail Sent"
または"Sent"
他のフォルダーを他のフォルダーにポイントしてメールをそのうちの 1 つだけに保持する他のソリューションが必要な場合は、同じ手順を繰り返します。
dovecot とクライアントをフォルダー"INBOX"
として使用する必要がある場合は"Sent"
、ユーザー名を使用してメール フォルダーからシンボリック リンクを作成する必要があります (これも長い行です)。
ln -s /var/vmail/example.com/exampleUser/mail/ /var/vmail/example.com/exampleUser/mail/.Sent\ Messages
変更していない限り、/etc/dovecot/conf.d/15-mailboxes.conf
次の行を編集します。
namespace inbox {
# For \Sent mailboxes there are two widely used names. We'll mark both of
# them as \Sent. User typically deletes one of them if duplicates are created.
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
}
または、これらと同等のものを次のようにする。
namespace inbox {
# For \Sent mailboxes there are two widely used names. We'll mark both of
# them as \Sent. User typically deletes one of them if duplicates are created.
mailbox INBOX {
special_use = \Sent
}
mailbox INBOX {
special_use = \Sent
}
}
お気づきのとおり、現在 2 つは同じなので、1 つを削除するだけで済みます。
namespace inbox {
# For \Sent mailboxes there are two widely used names. We'll mark both of
# them as \Sent. User typically deletes one of them if duplicates are created.
mailbox INBOX {
special_use = \Sent
}
}
そうすれば、問題なく動作するはずです。送信したメールをラップトップと携帯電話の両方の受信トレイ フォルダーに置きたかったため、このプロセスを実行しました。ラップトップでは dovecot ハックで十分でしたが、携帯電話ではフォルダーが使用され続けたため、シンボリック リンク トリックを使用する必要がありました。シンボリック リンクの送信元と送信先のフォルダー"Sent Messages"
を選択する際には、十分に注意してください。"Sent"
"Sent Messages"
プラグインは単純にシンボリックリンクを作成するだけなので、同じようなものを作成しているだけだと思います。このテクニックを使用すると、必要なすべてのフォルダーをマージして、クライアントを変更せずに作業させることができます。 :-)