vb设计数据库电子邮件程序
来源:互联网
作者:西部数码
时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
问题的产生
Interface Technologies (ITI)的CodeVizor工作组正在努力使他们的新工具引起程序员的注意。在先前的数个月里,成千上万的程序员注册成为ITI's DevCentral的一员,以更方便的试用它们的产品。作为注册的一部份,注册者被询问到他们是否希望得到产品的更新及新产品发布的消息。几乎所有的注册者都希望如此。
因此,工作团队决定向所有六千名注册用户发送一封个人电子邮件信息(当然得除开那些没有留联系EMail的用户)。但是这就出现了个问题:如果是发群体信件,则就违背了发个人邮件的初衷。我们希望的是发往注册用户的邮件是个人化的。因此,我们就得找出一种解决办法,使得发向6000名注册用户的群体邮件是完全个人的,保密的。
目的
我的工作则是写出一个程序,使得它能够进入到DevCentral的注册用户的SQL Server数据库里,然后为每个用户生成一封电子邮件(通过Exchange/Outlook)。
该程序会将待发的EMail保存至outlook,因此就可以组织邮件发送的过程。最好是小批量发送电子邮件,一次发送500封比较合适。这样就可以令到使用者将错误率降到最低,同样也可以降低服务器的负担,加快网络连接速度。同样我们需在邮件上加上回复地址,这样邮件则可以从DevCentral的邮箱里发出,而不是个人的邮箱。
以下将是创建该程序的主要步骤
使用工具及使用目的
通过使用Visual Basic 5.0写出该EmailMaker。该应用程序通过ODBC来进入数据库,并使用VB automation调用Microsoft Outlook以生成电子邮件文本。
最开始的目的本来在于设计出一个简单的基于对话项的程序,使之通过点击按钮就可以完成所有的步骤。但是,这也涉及到了更为多的内容:不但会使得该程序在使用上更为灵活,在功能上也更为强大,也会使我更多的了解VB,比如:combobox控件,属性栏,自定义图标,progress栏,多样化窗口,甚至于非常简单的文件保存及文件格式。因此我努力的将这些分散的VB程序应用知识积累起来,使之能成为一个"真正的程序"
EmailMaker使得用户可以通过数据库向地址列表发送个人化邮件。通过Message Window用户可以书写,编辑并保存邮件内容(同样也可以从其它文本编辑器或文档内复制-粘贴内容)
完成内容书写及保存后,用户则可以开始单个生成标有地址的邮件。当群体邮件位于指定文件夹里时,Send Email 功能则会要求用户分发全体或一部份邮件。
问题及解决方案
开发此程序最大的难点在于Properties form.。
开发此程序的目标之一在于让所有程序的选项来自combobox中,这样可以更便于安装及使用。我做的非常成功除了一个property(Address Sent From,以下我将会提及)。但是,最重要的一个属性包含了数据库及注册的调用功能,因为程序本身需要鉴别用户的数据库及邮件配置,常通过API来鉴别安装了何种ODBC数据库。
以下是源代码
下列数据对于API登录非常有用:
Public Const HKEY_CURRENT_USER = &H80000001
Public Const ERROR_SUCCESS = 0&
Public Const SYNCHRONIZE = &H100000
Public Const STANDARD_RIGHTS_READ = &H20000
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_READ = ((STANDARD_RIGHTS_READ
KEY_QUERY_VALUE Or _
KEY_ENUMERATE_SUB_KEYS Or _
KEY_NOTIFY) And _
(Not SYNCHRONIZE))
Public Const REG_DWORD = 4
Public Declare Function RegOpenKeyEx Lib "advapi32.dll" _
Alias "RegOpenKeyExA" _
(ByVal hKey As Long, _
ByVal lpSubKey As String, _
ByVal ulOptions As Long, _
ByVal samDesired As Long, phkResult As Long) As Long
Public Declare Function RegEnumValue Lib "advapi32.dll" _
Alias "RegEnumValueA" _
(ByVal hKey As Long, _
ByVal dwIndex As Long, _
ByVal lpValueName As String, _
lpcbValueName As Long, _
ByVal lpReserved As Long, _
lpType As Long, _
lpData As Any, _
lpcbData As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" _
(ByVal hKey As Long) As Long
'-- The subroutine FillODBCCombo is called when the Properties form is loaded.
'-- First the root ODBC key is opened. By iterating through its sub-keys,
'-- all of the installed DNS's are found and inserted into the DNS ComboBox.
Public Sub FillODBCCombo()
Dim hKey As Long
Dim dwIndex As Long
Dim lpData As Long
Dim lpcbData As Long
Dim lngResult As Long
Dim strResult As String
Dim lpValueName As String
Dim lpcbValueName As Long
'-- 每个ODBC数据源都有一个关键字位于
'-- HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources.上
'-- 通过查找每个关键字,能够收集到安装在ODBC上的所有数据源
lngResult = RegOpenKeyEx(HKEY_CURRENT_USER, _
"Software\ODBC\ODBC.INI\ODBC Data Sources", _
0&, _
KEY_READ, _
hKey)
If lngResult <> ERROR_SUCCESS Then
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关文章
热点关注
- 在asp.net中为Web用户控件
- .NET3.5和VS2008中的ASP.N
- 对.NET Framework 反射的
- Asp.net Ajax 1.0 异步回
- ASP.NET2.0的控件状态和视
- 通过避免下列10个常见ASP.
- 中国地区三级联动下拉菜单
- 解析Asp.net中资源本地化
- 一个无刷新效果定时自动更
- 动态创建MSSQL数据库表存
- asp.net用url重写URLReWri
- 使用ASP.NET Atlas编写显
- 关于ASP.NET调用JavaScrip
- 使用ASP.Net Forms模式实
- asp.net ajax 使用updatep
- 优化ASP.NET应用程序性能
- ASP.NET中动态修改web.con
- ASP.NET中利用Crystal Rep
- asp.net如何生成图片验证
- 基于ASP.NET的Web动态控件
- 分享个极好的无刷新二级联
- asp.net 2.0 上传控件的使
- 创建ASP.NET监视服务器进
- Asp.net把UTF-8编码转换为
- 开发基于ASP.NET WebServi
- asp.net结合html,javascr
- asp.net 2.0下嵌套masterp
- 正则表达式提取数字
- 最新版FreeTextBox(版本3.
- 获取本机上配置好的Oracle
- ASP.Net全局变量的设置和
- VB几个有用的函数
- 用代码画折线图/柱形图/
- FCKeditor2.2 ASP.NET2.0
- 客户端回调实现gridView无
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD



