2010-12-11 91 views
1

我的應用程序的用戶可以發送電子郵件給一組人。部分電子郵件可能無效。 我需要讓用戶知道哪些電子郵件被反彈。如何處理退回的電子郵件?

這可能嗎?如果是的話,任何指針都會有幫助。

我使用.NET,C#發送電子郵件。我不使用任何第三方工具發送郵件。

謝謝

+3

沒有可靠的方法來確定電子郵件是否已發送。 – 2010-12-11 22:19:11

回答

1

我已經在幾年前使用http://mailsystem.codeplex.com/完成了這項工作。它現在是開源的,但它當時花了我錢。

您將收到一條指示退回的消息,並且代碼中有屬性可以爲您提供原始發件人,因此您可以正確提交。

+0

當然,我沒有提到,我已經將某些電子郵件轉發給我正在監視的smtp文件夾。 – phillip 2010-12-11 22:27:50

+0

它可以處理,如果有多個發件人和任何發件人可以使用相同的電子郵件 – kheya 2010-12-11 22:36:09

+0

當然可以。我開發的應用程序每天處理超過50,000封郵件。郵件的格式也與附件不同。那個代碼(你可以使用)是郵件組件。它非常強大。 – phillip 2010-12-11 22:46:34

-1

「反彈」通常會返回給電子郵件的發件人,而不是您的應用程序。它並不是真正按照你的建議被應用程序處理。用戶應該收到來自所討論的電子郵件服務器的反彈通知(假設一切順利,因爲OMG Ponies說實在沒有可靠的方法)。

爲了使您的應用程序成爲反彈的接收者並以任何有意義的方式對其作出響應,您需要完成大量工作。您的應用程序基本上必須是用於發送電子郵件的用戶帳戶的郵件服務器。它必須在端口25上偵聽並解析傳入的消息進行反彈。

這不是一件小事。只是「作爲一個郵件服務器」在理論上工作得很好,除了世界上大多數其他郵件服務器都會忽略你,除非你是一個合適的MX記錄和所有的域名。另外,如果您在端口25上收聽傳入的內容,則會產生大量噪音。

最好讓用戶首先通過代表他們發送郵件來正確地收到反彈。

+0

我需要簡單快捷的解決方案。這是最重要的要求。目前,我將來自電子郵件地址設置爲'[email protected]'。因此,如果我將發件人的電子郵件設置爲發件人地址,那麼退回的電子郵件將轉到用戶而不是我的應用程序,對不對? – kheya 2010-12-11 22:32:39

+2

您不必使用端口25.您可以讓郵件服務器轉發到您的文件夾。您不必是終點,也不會修改mx記錄。他們幾乎都有這個功能。 – phillip 2010-12-11 22:39:08

+0

@phillip:這就夠了,我沒有想到這一點。 @Projapati:這可能是你最好的選擇。讓公司的郵件服務器將'[email protected]'的郵件存儲到文件夾中。然後你的應用程序可以使用'FileSystemWatcher'來監視這個文件夾並解析傳入的消息。根據他們的內容,您必須將其與適當的用戶進行匹配,並使用您的應用程序可能已經擁有的任何通知系統來讓該用戶知道。 – David 2010-12-11 23:05:04