我有一個由大量客戶端使用的VB6應用程序。如果沒有電子郵件客戶端通過VB6發送電子郵件
我需要讓客戶能夠發送電子郵件給我。在過去,我使用Microsoft MAPI控件完成了這項工作。但是,並非所有人都安裝了電子郵件客戶端,因爲他們使用網絡郵件。
是否有任何其他方法可以推薦哪些人允許他們這樣做?
我有一個由大量客戶端使用的VB6應用程序。如果沒有電子郵件客戶端通過VB6發送電子郵件
我需要讓客戶能夠發送電子郵件給我。在過去,我使用Microsoft MAPI控件完成了這項工作。但是,並非所有人都安裝了電子郵件客戶端,因爲他們使用網絡郵件。
是否有任何其他方法可以推薦哪些人允許他們這樣做?
SMTP
您可以使用CDO for Windows來做到這一點,如果我們做一些假設:
有時使用監聽備用端口的SMTP服務器將解決第二個問題,但通常這樣的備用端口更可能被阻塞。
SMTP是垂危
濫用隨着時間的推移作出SMTP用於自動/輔助用戶接觸少可行的。試圖爲SMTP通信打開某種「清晰頻道」涉及太多變數,因爲人們更努力地對付垃圾郵件發送者等。
今天我會更有可能爲此使用WebDAV或Web服務。兩者都使用HTTP/HTTPS,它們很可能會越過防火牆,並且通常也可以通過大多數代理服務器獲得。 WebDAV通常比Web服務更「滑」,越來越多的代理服務器正在醞釀中。您還可以使用比SOAPy更多的RESTful特性,因爲流量「聞起來更像」用戶瀏覽到代理服務器。
WebDAV是乾淨選項
甚至有免費 WebDAV的供應商有主,訪客用戶提供2GB的存儲空間。訪客帳戶可以給予各種文件夾的有限權利,以便他們可能發佈消息的某些文件夾,他們可能從中獲取數據的其他文件夾(只讀文件夾)等。對於付費帳戶,您可以獲得更多存儲空間,額外用戶等。
這很好。你甚至可以使用相同的主機程序版本文件,下載和安裝的新版本代碼等。你所需要的只是一個聚合器程序,它可以捕獲用戶發佈的消息並使用主用戶/ pw刪除它們。
您仍然需要在程序中嵌入用戶憑據,但隨着時間的推移更改密碼可能會更簡單。只需讓程序獲取帶有新密碼和生效日期的信息文件,並讓該程序在該日期或之後運行時將「新」密碼翻轉爲「當前」。在Windows
支持WebDAV變化。從WinXP的SP3前,你可以簡單地編程驅動器號映射到WebDAV共享,然後使用普通文件反對I/O語句,並取消映射信完成時。對於Win9x甚至更通用的用戶,你可以在XMLHTTPRequest之上構建一個簡單的WebDAV客戶端或使用第三方庫。
Web服務有更高的成本
剛開始與你的服務器端代碼編寫和維護,並且必須使用特定類型的託管。例如,如果你建立了它使用PHP,你需要一個PHP主機,ASP的ASP主機,ASP.Net一個ASP.Net主機等
Web服務也可以產生更多的問題在版本方面。如果您稍後更新程序以在這些用戶聯繫人帖子中提供不同的信息,則必須製作另一個Web Service以及更改應用程序和聚合器。使用WebDAV,您可以在服務器上創建一個「新格式」文件夾,讓新程序以新格式發佈數據。您的聚合器可以簡單地從兩個文件夾中提取數據,並將其重新格式化爲新的本地數據庫/消息存儲庫格式。
這只是雖然增量額外的努力和Web服務可能是要走的路,哪怕只是寫東西像一個HTML表單GET/POST受體。
多麼詳盡的解釋。非常感激。 – Urbycoz 2011-03-02 08:49:24
雖然這個問題是針對VBA的,但您可能會感興趣。 Sending Emails using VBA without MAPI
這看起來像那種事情:http://www.freevbcode.com/ShowCode.Asp?ID=109。任何人使用它? – Urbycoz 2011-03-01 15:53:13
重複此[關於通過SMTP發送電子郵件從VB6](http://stackoverflow.com/questions/3539242/sending-e-mail-via-smtp-using-vb6) – MarkJ 2011-03-01 21:03:35
可能重複[發送電子郵件通過VB6(http://stackoverflow.com/questions/5517217/sending-an-email-through-vb6) – Deanna 2013-05-17 11:40:05