我做了java开发两年了,如果是电子邮件,一般我们会有varchar(50)。
这个跟数据库类型无关。无论是mysql,还是oracle,还是sqlserver(实际开发很少用到sqlserver数据库)。也就是一般邮件都会用字符串类型。
2. 我想把一个查询结果用SQL发出邮件这个过程怎么做
--1.启用DatabaseMail扩展存储过程
sp_configure'showadvancedoptions',1
GO
RECONFIGURE
GO
sp_configure'DatabaseMailXPs',1
GO
RECONFIGURE
GO
sp_configure'showadvancedoptions',0
GO
RECONFIGURE
GO
--2.添加account
execmsdb..sysmail_add_account_sp
@account_name='zhanghao'--邮件帐户名称SQLServer使用
,@email_address='[email protected]'--发件人邮件地址
,@mailserver_name='smtp.126.com'--邮件服务器地址
,@mailserver_type='SMTP'--邮件协议SQL2005只支持SMTP
,@port=25--邮件服务器端口
,@username='zhanghao'--用户名
,@password='mima'--密码
--3.添加profile
execmsdb..sysmail_add_profile_sp
@profile_name='dba_profile'--profile名称
,@description='dbamailprofile'--profile描述
,@profile_id=null
--4.映射account和profile
execmsdb..sysmail_add_profileaccount_sp
@profile_name='dba_profile'--profile名称
,@account_name='zhanghao'--account名称
,@sequence_number=1--account在profile中顺序
--5.1发送文本邮件
execmsdb..sp_send_dbmail
@profile_name='dba_profile'
,@recipients='[email protected]'
,@subject='SQLServer邮件测试'
,@body='内容啊'
,@body_format='TEXT'
--5.2发送附件
EXECsp_send_dbmail
@profile_name='dba_profile',
@recipients='[email protected]',
@subject='这是附件',
@file_attachments='G:乱七八糟sql.txt'
--5.3发送查询结果
EXECsp_send_dbmail
@profile_name='dba_profile',
@recipients='[email protected]',
@subject='这是查询',
@query='select*fromtest.dbo.apo_city'
--6.查看邮件发送情况
select*fromsysmail_allitems
select*fromsysmail_mailitems
select*fromsysmail_event_log
--7.删除邮件配置
Execmsdb..sysmail_delete_profileaccount_sp
@profile_name='dba_profile',
@account_name='zhanghao'
Execmsdb..sysmail_delete_profile_sp
@profile_name='dba_profile'
Execmsdb..sysmail_delete_account_sp
@account_name='zhanghao'
3. 如何用SQL Server来自动发送邮件
邮件列表(mailing list)是电子邮件的扩展应用之一,被广泛应用于用户的跟踪服务,发布产品信息,以及电子报刊等方面。用户可以向相应的邮件服务器发送一份订阅申请邮件,这样该用户就被加入到该邮件发送的列表中。其过程是:用户填写相关申请订阅信息,系统根据用户提供的邮箱地址发送一封确认邮件,并要求用户打开自己的邮箱,点击邮件相关确认部份将其的确认信息发送给网站的Webmaster,Webmaster在得到确认信息后向用户开通相关的服务。那么这种自动发送邮件的功能是怎样实现的,我们怎样在自己网站中实现该功能呢?下面将对此实现方法进行阐述。
软件厂商提供了方便、简易、与服务器无关且稳固的方法,使我们可以在页面上用一些ASP组件直接发送邮件。如:Microsoft提供的CDONTS及第三方组件Jmail、ASPFreeMail,FastMail,ASPEmail,ASPQEmail等。
1.CDONTS(collaboration Data Object for NT Server) CDONTS与ADO类似,它们为用户提供了用任何程序和脚本语言访问操作系统复杂和稳固的功能集合的能力。编程人员通过以ActiveX封装Windows的本地消息服务来收发电子邮件。Windows2000中会默认安装SMTP服务,Windows NT中可用Windows NT4.0 option pack 4安装SMTP服务。安装后CDONTS.DLL存放在C:\Winnt\System32\目录下面。有了该组件我们还不能立即应用它,在对它进行使用之前我们必须先完成组件的注册,我们可以在MS-DOS方式下进入到CDONTS.DLL所在的目录C:\Winnt\System32\下输入:
c:\winnt\system32>regsvr32 cdonts.dll
(如果我们想将其御载可用指令: c:\winnt\system32>regsvr32/u cdonts.dll)
通过CDONTS发送电子邮件非常方便,仅需创建一个邮件对象并设置其几个相关属性便可实现。基本过程如下:
<%‘创建一个邮件对象
set NewMailObj=CreatObject(“CDONTS.NewMail”) NewMailObj.from=“源地址(发件人名)” NewMailObj.To=“目标地址(收件人名)” NewMailObj.Subject=”标题” NewMailObj.Body=“邮件内容”
NewMailObj.AttachFile “filename”,"附件名" 设置优先级,0-不重要,1-一般,2-重要 NewMailObj.Importance=2 NewMailObj.Cc=”抄送地址” NewMailObj.BCc=”密送地址” NewMailObj.send ‘邮件发送
Set NewMailObj=Nothing ‘释放对象实例 %>
下面以网络杂志订阅系统的订阅申请及确认实现部分为例具体说明怎样用CDONTS对象实现自动发送邮件的功能