簡體   English   中英

電子郵件從Rails或actionmailer發送狀態

[英]email sent status from rails or actionmailer

我正在開發一個測試應用程序,並在我的工作計算機上運行整個程序。 我正在使用公司郵件服務器發送郵件。 它正常工作。 我想知道如何處理任何條件,例如從我的PC無法訪問郵件服務器。 據我所知,rails應用程序只是發送郵件而已。 無法知道郵件是否到達收件人,收件人郵件ID是否正確等。有關如何處理這種情況的任何想法? 感謝和問候,安賈利

我相信您在這里將兩個問題混合在一起,這些問題確實無關。

第一個問題-確保電子郵件已被公司郵件服務器接受 (在這種情況下為郵件中繼)。 為了解決這個問題,您可以建立本地消息隊列(將它們存儲在數據庫,隊列服務器等中),然后使用單獨的工作進程發送消息,該工作進程將從隊列中提取每個消息,嘗試傳遞並刪除它僅當它被郵件中繼接受時。

或者,如果您不需要對流程進行低級別的手動控制,則可以在計算機上設置一個簡單的本地郵件服務器,如果直接將電子郵件發送到公司郵件中繼,則只需將它們發送到本地郵件服務器即可。 然后,它將確保將電子郵件正確發送到公司。

但是在兩種情況下,您都不會獲得有關將郵件發送到最終收件人的位置的任何信息-例如電子郵件地址是否有效,用戶的郵箱是否已滿等。

第二個問題-跟蹤郵件傳遞錯誤。 要正確而徹底地解決此問題,您需要捕獲所有從遠程服務器退回給您的郵件並進行分析,因為在發送電子郵件時尚不知道許多錯誤,但是以后會以郵件退回的形式返回。 如果您捕獲並跟蹤這些退回郵件,則將能夠捕獲諸如完整郵箱,無效電子郵件,只是暫時的傳遞失敗等錯誤。

這是在郵件列表管理軟件中完成的方式-例如,phpList的運行方式完全相同。

我想到了這個問題。 我的想法是將郵件存儲到稱為“ mailqueue”的單獨模型中,然后運行ruby腳本,僅當公司郵件服務器可用時,該腳本才會從該郵件隊列中提取和刪除郵件(我已經有執行此操作的代碼,我相信)。 當然,如果有更好的方法,我也歡迎它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM