2009-11-17 57 views

回答

9

這不是Java特有的問題。

  1. 您可以創建一個HTML電子郵件,並嵌入一個不可見的gif,它將向您的服務器報告。有些軟件如Outlook和一些網絡郵件程序會阻止這種不可信的電子郵件。
  2. 您可以申請回執。許多郵件程序完全忽略了這一點,而那些通常不會詢問用戶是否要發送它的郵件程序。

例子:

email.AddHeaderField("Disposition-Notification-To","<[email protected]>") 
1

我想你是通過SMTP發送它。每當你的郵件被髮送到你的SMTP服務器,你的Java程序無法控制它:

1)如果你想知道你的郵件是否已經發送,你應該以某種方式聯繫你的SMTP服務器(如果SMTP服務器是然後忘記這一點),看看你的郵件是否已發送。

2)您無法知道郵件是否已被其接收方打開。您可以做的最大限度是設置郵件需要確認的標誌,但這取決於用戶是否明確要發送確認。其他可能性是在郵件中爲您的網站設置一些鏈接,以便點擊鏈接查看內容。您將能夠跟蹤用戶是否點擊了該鏈接。

+0

你*可以*知道(如果一封電子郵件已被收件人打開,per @ brianegge的答案)。它可能不是100%,取決於被阻止的圖像,但它是可能的。 – AdaTheDev

+0

是的,這是我的#2建議的修改方法,而不是鏈接,使用圖像 – rossoft

3

沒有辦法,以確保您始終獲得交付或開放式消息通知。

郵件服務器可能會接受郵件,然後放下郵件。 用戶可能會閱讀郵件但拒絕通知。

在大多數電子郵件程序中,「Webbugs」(郵件的html源代碼中的圖像包含允許識別郵件的特殊令牌)不起作用。

事實上,你很難看到有人收到了這條消息。

你可以做的是保持消息在你的服務器上,只發送一個鏈接。如果用戶點擊了,你可以很確定他收到了這條消息。但幸運的是,許多用戶不會點擊這些鏈接,因爲它被用於欺詐和垃圾郵件。

+0

爲什麼有人低估了這一點?解釋會很好。 –

0

如果您發送HTML電子郵件,您可以添加一個1x1像素的圖像和一些跟蹤參數,這些參數會回調您的網絡服務器。它不是100%可靠的,因爲一些電子郵件客戶端(和用戶)會阻止電子郵件中的圖像。

0

您可以添加類似

<span style="display:none">Tracking no: ${TRACK_NO}</span>
到電子郵件的正文。這應該始終在響應中,除非電子郵件客戶端將其刪除。