Messaging.sendEmail not sending emails for non-admin profile in sandbox / 測試寄信,一直寄不出去,而且還沒有 error messsage!
總在自以為很嫺熟相關設定的時候,就會不小心又踩到一個坑。 這次是Messaging.sendEmail,怎麼也 send 不出去。 ## 症狀 我寫了一個 Apex Trigger on Knowledge__kav,讓 user 在 create new knowledge 的時候,會自動觸發通知信給相關人士。 我剛在 sandbox 做好的時候,自己測起來相當很正常、都有收到信,於是就聲稱說我把這個功能完成了。 結果別人怎麼都測不出來。 後來發現,好像只有 System Administrator 才能觸發寄送 Email 的動作。 我設了 Debug Log 也沒看到任何 error。 而non-admin 與 admin 所產生的 log,幾乎可說是一模一樣。 看不出到底寄信的動作在哪裡卡住了。 ## 原因 Root Cause 在 Sandbox,如果某個 user 的 Email 是 Invalid 的,那麼這個 user 就沒辦法觸發寄信動作。 包含 Workflow, Process, Flows or Triggers,通通都無法觸發。 這是 Summer Release 19' 上路的新制。望周知。 ## 參考資料 Messaging.sendEmail not sending emails for non-admin profile in sandbox Email addresses in sandbox appended with '.invalid' after refresh Please note as of Summer Release 19', Users must have a verified email address and .invalid removed from the email address in order to send email alerts via Workflow, Process, Flows or Triggers.