如何設定 mutt 以便透過 bash 腳本將傳送的訊息儲存到特定的遠端 IMAP 資料夾?

如何設定 mutt 以便透過 bash 腳本將傳送的訊息儲存到特定的遠端 IMAP 資料夾?

我在 CentOS 7 上安裝了 Zimbra Collaboration Suite。

問題是每當我的腳本執行 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"

這是 mutt 調用,由 cron 每小時執行一次:

echo "Test" | mutt -s "IP Address Information" [email protected]

如果我要像這樣呼叫命令:

mutt -s "IP Address Information" [email protected]

並遵循該過程(mutt 打開 vi 並讓我輸入正文),它確實將訊息保存到資料夾中。但是我無法將此命令放入腳本中,因為它是自動的。

這是我提到的目標資料夾:

[zimbra 截圖](http://imgur.com/U8EnQ6M)

答案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.html這解釋了我必須將set certificate_file指令添加到文件中。

讓 mutt 儲存自簽名憑證後,腳本可以再次向 MTA 發送電子郵件。但是,當我檢查用於傳遞的帳戶的郵箱時,有一個名為「IPInfo」的資料夾遵循該set record指令。因此我認為解決我原來問題的方法是讓 mutt 保存自簽名憑證。

我希望這對任何正在尋找類似答案的人有所幫助。

相關內容