我有一个VB6应用程序,被大量客户端使用。
我需要允许客户能够向我发送电子邮件。在过去,我使用Microsoft MAPI控件完成了此操作。但是,并非所有人都安装了电子邮件客户端,因为他们使用的是webmail。
是否还有其他人可以推荐的方法可以让他们这样做?
答案 0 :(得分:5)
<强> SMTP 强>
如果我们做出一些假设,您可以使用CDO for Windows来执行此操作:
有时使用侦听备用端口的SMTP服务器将解决第二个问题,但通常更有可能阻止此类备用端口。
SMTP正在消亡
随着时间的推移滥用使得自动/辅助用户联系的SMTP越来越不可行。试图为SMTP通信打开某种“明确的通道”涉及太多变量,因为人们更加努力地打击垃圾邮件发送者等等。
今天,我更有可能使用WebDAV或Web服务。两者都使用HTTP / HTTPS,它更有可能通过防火墙,并且通常也可以通过大多数代理服务器获得。 WebDAV在这方面通常比Web服务更“滑”,Web服务越来越多的代理人正在为此而烦恼。您还可以使用比SOAPy更RESTful的东西,因为流量“更像是”用户浏览到代理服务器。
WebDAV是一个清洁选项
甚至还有免费的 WebDAV提供商,它们为主用户和访客用户提供2GB的存储空间。来宾帐户可以被赋予对各种文件夹的有限权限,因此他们可能会将您的邮件发布到其他文件夹,可能从其他文件夹中获取数据(只读文件夹)等。对于付费帐户,您可以获得更多存储空间,其他用户等
这很有效。您甚至可以使用相同的托管程序版本文件,要下载和安装的新版本代码等等。您需要的只是一个聚合器程序,用于挖掘用户发布的消息并使用主用户/ pw删除它们。 / p>
您仍需要在程序中嵌入用户凭据,但随着时间的推移更改密码可能更为简单。只需让程序获取一个带有新密码和生效日期的信息文件,并让程序在该日期或之后将“新”密码翻转为“当前”。
Windows中的WebDAV支持各不相同。从WinXP SP3转发,您可以简单地以编程方式将驱动器号映射到WebDAV共享,然后对其使用常规文件I / O语句,并在完成后取消映射该字母。为了在Win9x中更常用,您可以在XMLHTTPRequest之上构建一个简单的WebDAV客户端或使用第三方库。
网络服务的成本更高
首先,您需要编写和维护服务器端代码,并且必须使用特定类型的托管。例如,如果你使用PHP构建它,你需要一个PHP主机,ASP一个ASP主机,ASP.Net一个ASP.Net主机等。
在版本控制方面,Web服务也可能更成问题。如果您稍后更新程序以在这些用户联系人帖子中提供不同的信息,则必须创建另一个Web服务以及更改应用程序和聚合器。使用WebDAV,您只需在服务器上创建一个“新格式”文件夹,让新程序以新格式发布数据。您的聚合器可以简单地从两个文件夹中提取并执行任何必要的重新格式化为新的本地数据库/消息存储库格式。
这只是一项额外的增加工作,而Web服务可能就是这样,即使它只是像HTML Form GET / POST接受器那样编写的。
答案 1 :(得分:0)
虽然这个问题适用于VBA,但您可能会感兴趣。 Sending Emails using VBA without MAPI