expectでIMAPサーバと会話する

自社用のメールサーバを運営しています。
アカウントを追加する際に、メールボックスのACLを追加して、事業所内でメールを共有できるようにしているのですが、その設定が面倒くさい・・

そこで、expectというツールを使って、ACL追加を自動化してみることを試みました。

これはその覚書です。

これまでACLを追加するために、サーバにSSHでログインして、telnetでlocalhostのimapサーバに接続していたのですが、他の仕事が立て込んできている時には面倒くさく感じるものです。

ゴール

目的は次の通り。

  • ユーザーのアドレスは user@mydomain.com
  • 事業所のアドレスは belongto@mydomain.com
  • 事業所の所長のアドレスは manager@mydomain.com
  • 事業所のアドレスに、user@mydomain.com の INBOX を読み取り専用で共有させる。
  • 所長のアドレスには、INBOX と Sent の2つのメールボックスを読み取り専用で共有させる。

色々あれこれ調べてみた結果、次のようなスクリプトで今のところいけています。

もちろんユーザにはINBOXやSentが共有されていることは教えています。