CentOS 7 に Zimbra Collaboration Suite をインストールしました。 mutt を使用して 1 時間ごとに電子メールを送信する必要があります。
問題は、スクリプトが mutt を実行するたびに、.muttrc 内の特定の (リモート IMAP) フォルダーにメッセージが保存されないことです。
一方、コマンドを直接実行すると、メッセージはフォルダーに保存されます。
これは私の .muttrc 設定で、スクリプトを実行する現在のユーザーのホームにあります。
set from="IP Address Information <ip-no-reply@xxx>"
set folder="imaps://username:password@localhost"
set mask="!^\\.[^.]"
set record="+IPInfo"
set postponed="+Drafts"
set spoolfile="+INBOX"
set edit_headers=yes
set ssl_starttls=yes
set ssl_force_tls=yes
set smtp_url = "smtp://username:password@localhost:587"
これは、cron によって 1 時間ごとに実行される mutt 呼び出しです。
echo "Test" | mutt -s "IP Address Information" [email protected]
次のようにコマンドを呼び出すとします。
mutt -s "IP Address Information" [email protected]
プロセスに従うと (Mutt が vi を開いて本文を入力できるようにする)、メッセージがフォルダーに保存されます。ただし、このコマンドは自動化を目的としているため、スクリプトに組み込むことはできません。
これは私が言及した宛先フォルダです:
答え1
最近、mutt と Zimbra の場所を分割したところ、電子メールの配信中に証明書の問題があることがわかりました。
mutt は証明書を受け入れるか拒否するかの確認を待機しており、対話なしで実行された場合は自動的に証明書を拒否します。[これが私の想定した動作です]
更新された .muttrc は次のとおりです。
set from="IP Address Information <ip-no-reply@xxx>"
set folder="imaps://username:password@zimbra_or_postfix_server"
set mask="!^\\.[^.]"
set record="+IPInfo"
set postponed="+Drafts"
set spoolfile="+INBOX"
set edit_headers=yes
set certificate_file=.mutt-certs
set ssl_starttls=yes
set ssl_force_tls=yes
set smtp_url = "smtp://username:password@zimbra_or_postfix_server:587"
私はこの問題の解決策を探していましたが、ここで答えを見つけました:http://www.seas.upenn.edu/cets/answers/mutt-certificates.htmlset certificate_file
ファイルにディレクティブを追加する必要があることが説明されています。
mutt に自己署名証明書を保存させた後、スクリプトはもう一度メールを MTA に配信できます。しかし、配信に使用しているアカウントのメールボックスを確認すると、指示に従う「IPInfo」という名前のフォルダーがありますset record
。したがって、元の問題の解決策は、mutt に自己署名証明書を保存させることであると私は考えています。
同様の答えを探している人にとってこれが役立つことを願っています。