2011-07-05 33 views
9

我正在開發一個網站,我希望通過匿名他們的電子郵件地址來保護買家。類似於Craigslist的系統,當賣家需要聯繫買家時,他們應該能夠發送電子郵件轉換爲匿名地址,例如[email protected],然後將其路由到用戶的電子郵件地址。電子郵件匿名與C#中的Craigslist類似

我的計劃,現在是:

  1. 建立一個水桶(包羅萬象)收件箱
  2. 生成每個買家隨機密鑰,這將是用戶特定的(「1425415125」以上)部分的電子郵件地址
  3. 監視存儲桶收件箱並解析出此用戶特定部分。有一次,我知道用戶的電子郵件可以被轉發到正確的地址

我的問題如下:

  1. 你能看到的任何問題與上述解決方案
  2. 是否有任何開源現有問題的解決方案
  3. 在開發這樣一個系統時應該注意哪些問題?

在此先感謝

JP

+0

雖然下面的兩個答案都很有洞察力,但我開始看看有什麼其他信息 - 特別是與c#特定解決方案有關的信息 - 我可以找到 –

+2

雖然它沒有給我任何獎勵,但我認爲這個問題[已經解決](http://stackoverflow.com/questions/926345/pipe-in​​coming-email-to-a-script-on-windows-iis-smtp)在這裏。 – Sumo

回答

6

我做了一些相關的事情,雖然不完全一樣。我在現有的pop3服務器上設置了一個全部收件箱(你可能已經猜到了一個)。然後我用OpenPop.NET讀取定時器上的所有新消息(比如說每30秒)。在我的情況下,我停止了處理信息,但很容易產生一個新的信息到適當的地址並複製正文,然後在SMTP服務器上發送新的信息。

我在設置中看到的一個問題,也許這只是我的一個誤解,即當您保護用戶的原始電子郵件地址時,他們將繼續以[email protected]m爲基礎持續到達。如果我瞭解craigslist的工作方式,則每封郵件都有不同的電子郵件地址,並且一旦郵件被刪除/刪除(或稍後),電子郵件地址將停止工作。這使得人們不能只是在你的電子郵件地址上進行竊聽。這個問題的解決方案很簡單,只需使電子郵件地址與應用程序ID或其他ID相對應,而不是數據庫中的用戶ID。查找速度會很快,但每次都會有一個新的電子郵件地址。

+0

在保護電子郵件地址方面 - 匿名電子郵件地址將按照設定的時間間隔進行刷新,例如,一天[email protected]將有效,之後該電子郵件地址將指向無人,而相同的用戶將會可聯繫[email protected] –

+1

這是混亂..如果買方和賣方通過電子郵件rehashing相應?買方將無法再與賣家聯繫。我同意@Patricker該Id應該與發佈ID相關。 – Variant

+0

@Variant,有一些您不知道的關鍵業務特定問題。對我而言,這正是我想要的行爲。 –

1

您不妨看看郵件「管道」 - 的能力,有人發送電子郵件到郵件服務器,然後把它立即拋出一個可執行,然後將您的郵件轉發到收件人(通過根據管道郵件的傳入地址從數據庫中提取真實的電子郵件地址)。

我個人的建議是檢查HMailServer,它有一個COM API(管理端是用PHP編寫的,因此需要傳統的互操作),是免費且開源的,並且有很好的文檔記錄。它沒有郵件管道內置,但很容易擴展提供的API,並支持其在server-side message events

HTH運行腳本,

本傑明

1

我認爲這個解決方案纔有意義,是在很多情況下使用。最難的部分實際上是收到消息。如果需要,您可以在您的網絡應用程序中實際處理所有這些內容。我寫了一篇博文,突出了receive email in your web app的幾種方法。它主要適用於Rails,但概念應該可以轉移。

+0

他們是競爭對手,但[Mailgun](http://mailgun.net/)可能會在這裏做到這一點。他們將允許您接收電子郵件到中央郵箱並解析它們以滿足您的任何需求。 – JonLim

0

你正在尋找的方式是我創建類似服務的方式。我不會推薦你編寫你自己的smtp服務器。使用現有的郵件服務器,只使用輪詢或基於事件的api。

使用第三方郵件服務器的好處是您可以使用其上的現有備份和管理工具。

編輯:我只是注意到這裏已經回答了更好的解釋。Pipe incoming email to a script on Windows IIS SMTP?

0

我沒有看到您的設置有任何問題,事實上這是正確的方法,因爲如果您的計劃的應用程序失敗,電子郵件仍將位於全部收件箱中。只有在電子郵件成功發送給某人後,該電子郵件纔會被刪除。您將能夠監控和記錄您自己的應用程序的活動,以監控進度和失敗。

我不建議配管,因爲,如果因爲任何原因管道成功,但你的EXE崩潰,你會失去電子郵件。跟蹤將是困難的。調度工作是不可能的。

如果您的應用程序獨立於郵件服務器,則可以輕鬆管理它並儘可能地替換郵件服務器。這很容易擴展。

在這裏,你將不得不使用一些流行閱讀器庫,並安排你的應用程序經常運行。

0

除了電子郵件,您可能會考慮採用拉取而非推送的方式,例如:消息中心網絡前端或RSS提要。我這樣說是因爲對各ISP的傳遞能力問題可能很難排除故障,以我的經驗,用戶永遠不會相信它是他們的ISP。

相關問題