Email

篩選過濾器從子地址中刪除詳細資訊部分

  • August 22, 2020

我目前有一個篩濾器,如下所示:

require ["variables", "envelope", "fileinto", "vnd.dovecot.filter", "subaddress"];
if envelope :matches "to" "*" {
       set :lower "my_recipient" "${1}";
       filter ".." "${my_recipient}";
       fileinto "INBOX";
}

這很好用。但是我的過濾器目前無法正確處理子地址,例如:ken+sieve@example.org

所以我想將my_recipient變數設置為 ken@example.org 以使過濾器正常工作,即使信封設置為 ken+sieve@example.org

我已經閱讀了子地址文件,我可以看到如何獲取user部分或domain部分,但不知道如何獲取完整地址,包括沒有detail部分的域。我怎麼能做到這一點?

以下作品

if envelope :user :matches "to" "*" {
   set :lower "user" "${1}";
   if envelope :domain :matches "to" "*" {
       set :lower "domain" "${1}";
       set "my_recipient" "${user}@${domain}";
           filter ".." "${my_recipient}";
           fileinto "INBOX";
   }
}

引用自:https://serverfault.com/questions/1030550