2012-04-13 82 views
1

由於cfmail有一個「FAILTO =''」選項,如果電子郵件沒有被髮送,觸發電子郵件被髮送到該電子郵件...ColdFusion中的Undelivr電子郵件的自動數據庫跟蹤?

有沒有辦法以某種方式分配ID或跟蹤#到一封電子郵件,將其存儲在具有該ID的數據庫中......然後在該電子郵件失敗時更新該電子郵件的狀態?

我想跟蹤郵件退回......最好不發送FAILTO到POP3或IMAP,然後用cfimap檢查它...

是否有處理這個任何替代辦法?

也許一個事件網關在電子郵件失敗時觸發?

更新:我決定採用不同的方法,利用sendgrid API。 我希望借給我一些比CF提供更多的工具。

+1

如果你想跟蹤郵件退回適當它會非常複雜,不只是爲了獲得反彈回來,但也對它們進行分析的有效途徑,以確定它們是否自動消息,軟,硬,暫時的,等我強烈推薦的現有產品用於此目的。我的公司使用Zrinity,這也是一個優化的發送服務器,但有許多產品用於反彈追蹤/管理。 – 2012-04-13 14:05:51

回答

0

對你的問題的簡短回答很不幸沒有。

更長的版本有可能的解決方案: 的failTo電子郵件地址填充在電子郵件標題返回路徑,這則「應當」通過郵件服務器的反彈背部使用(但是看 - http://www.bennadel.com/blog/1899-GMail-Seems-To-Ignore-The-Return-Path-Header-Defined-By-The-CFMail-FailTo-Attribute.htm爲例地方不)

那麼你將需要監控的IMAP或POP帳戶,看看你的郵件,但是你可以設置一個事件網關監視此,在這裏詳細說明 - http://www.alagad.com/documentation/imapGateway/ImapWatcher%20Gateway%20Documentation.pdf

你什麼剩下的事情是需要確定哪些郵件匹配哪些反彈,當我在過去做過類似的事情時,我使用了唯一的id作爲failTo我擁有的域中的電子郵件地址。如果你設置好了,然後使用你的監聽器cfc來查找返回路徑中的id。

所以,你發送的代碼將線沿線的工作:

  • 生成唯一的ID
  • 發送郵件
  • 具有唯一的ID數據庫中添加一行

你listener.cfc會那麼需要檢查返回的電子郵件,以及是否發現唯一標識符用您以後的任何信息更新該行。

希望即使您需要設置一些其他位,至少可以提供幫助。

+0

謝謝,這是最有幫助的。 你很精確地回答了我的問題。 我想我會使用我的sendgrid帳戶。 我在想我可以使用他們的API來做到這一點。 – 2012-04-13 14:39:18

0

您可以使用undelivr文件夾上的直接觀察器來記錄失敗的電子郵件,只有真正的解決方案如果它自己的服務器,而不是共享服務器,但是。

+0

只有在郵件發生錯誤時纔會將郵件複製到undelivr,以防止CF發送郵件。一旦它在野外,任何事情都可能發生在它(反彈,因爲收件人的收件箱已滿爲例),CF不檢查,一旦它出了閥芯和關閉您的SMTP服務器它發送。 – jfrobishow 2012-04-13 13:51:35

0

據我所知,一旦它離開假脫機,並關閉您的SMTP服務器CF假設它已被正確發送。

這封電子郵件將會緩衝SMTP服務器/中繼鏈,如果發生任何事情,他們唯一的指令就是將其退回到發件人地址或失敗地址(如果存在)。此時CF不在監聽,因此無法響應。

我們使用稱爲Glock電子郵件處理器的外部工具來處理異常。這不是免費的,但工作得很好。你可以在這裏找到它:http://www.glocksoft.com/email-processor/

您需要配置它來檢查failto地址,您可以從那裏採取許多行動。我將它設置爲三次罷工系統。

電子郵件地址的反彈,我增加我的電子郵件表計數器,在3我停用從系統的電子郵件。

什麼你不能用cfpop做自己雖然。