用於外發郵件的 Sievie - dovecot

用於外發郵件的 Sievie - dovecot

我需要為外發郵件建立一個過濾器。如果「to」包含給定的電子郵件地址,則複製郵件。

# rule:[Copy to slack]
if address :contains "to" "[email protected]"
{
    redirect :copy "[email protected]";
}

我嘗試

# rule:[Copy to slack]
if address :contains "to" "[email protected]"
{
    redirect :copy "[email protected]";
}

或者

# rule:[Copy to ]
if address :contains "to" "[email protected]"
{
      fileinto "INBOX.Redmine";
}

但每次過濾器都不起作用。

只有當我從「收件者」或其他本地郵件中的地址發送郵件時,此功能才有效。

有任何想法嗎?

答案1

它不起作用,因為它不能以這種方式工作:如果您要傳送郵件,則將其直接傳送至連接埠 465 到 Postfix - 不會執行 Sieve 腳本。

如果你想使用 sieve 語言來處理外發郵件,你將不得不付出更多的努力,因為它沒有很好地整合到通用軟體中,至少遠不如 Dovecot 中的 Pigeonhole Sieve 整合那麼好,後者只會在兩個特定用例中觸發:

  1. 收到郵件時,又名最終交付Dovecot 管理的寄往信箱的郵件階段,或
  2. 關於管理郵箱,特別是本地或 IMAP 連線的用戶端對 Dovecot 管理的郵箱的操作。

值得注意的是,該整合不會處理郵件提交的情況:雖然 Dovecot 確實包含提交代理,但它通常根本不涉及該方向,並且在極少數使用此代理的情況下,仍然不處理 Sieve。

您現在有幾個選擇:

  • 在儲存至「已傳送」郵件匣的郵件上觸發腳本(但不會對未儲存在該郵件匣中的郵件運作)
  • 用 Postfix 的內建功能取代您的腳本。收件者密件抄送映射我想到了
  • 配置 postfixheader_checks以簡單地拒絕不符合您的策略的郵件(例如,跳過所需的 To: 標頭,然後拒絕其所有不完整版本)
  • 在一些 milter/filter 中配置副本
  • 配置一個(最好是新的本地)地址,您將其設定為擴展到您想要接收郵件的兩個地址,讓用戶在那裡發送郵件
  • 將該收件人的郵件傳送到一個腳本,可能是使用您的Sieve 腳本的腳本(這不太可能是您的最佳選擇:在LDA 用例之外使用sieve 根本無法獲得任何現有軟體的良好支持)

相關內容