SQLServer中发送邮件的新方式
时间:2007-12-23 来源:不详 作者:迈克DB
{
MailMessagemail=newMailMessage();
mail.To="me@mycompany.com";
mail.From="you@yourcompany.com";
mail.Subject="thisisatestemail.";
mail.Body="Sometextgoeshere";
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate","1");//basicauthentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername","my_username_here");//setyourusernamehere
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword","super_secret");//setyourpasswordhere
SmtpMail.SmtpServer="mail.mycompany.com";//yourrealservergoeshere
SmtpMail.Send(mail);
}
以前我曾写过在.NET下发送邮件的方法,详见:
http://dev.csdn.net/develop/article/17/17189.shtm
SQLServer中,我们一般使用SQL本身的邮件发送方式,但需要配置ExchageServer、Outlook等,也是一个比较繁琐的事情。很多人抱怨说配置不成功。
织梦好,好织梦
其实,我们可以在SQLServer中创建OLE对象实例,调用IISSMTP自带的发送组件来实现邮件发送。
我们建立这个存储过程,你需要修改的地方是,SmtpServer的名字
CreatePROCEDUREsys_sendmail@Fromvarchar(100),@Tovarchar(100),@Bccvarchar(500),@Subjectvarchar(400)="",@Bodyntext=""
AS
Declare@objectint
Declare@hrint
EXEC@hr=sp_OACreate’CDO.Message’,@objectOUT
EXEC@hr=sp_OASetProperty@object,’Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value’,’2’
EXEC@hr=sp_OASetProperty@object,’Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value’,’smtp.163.com’
--下面三条语句是smtp验证,假如服务器需要验证,则必须要这三句,你需要修改用户名和密码
EXEC@hr=sp_OASetProperty@object,’Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value’,’1’
EXEC@hr=sp_OASetProperty@object,’Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusername").Value’,’lihonggen0’ 内容来自dedecms
EXEC@hr=sp_OASetProperty@object,’Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendpassword").Value’,’xxx’
EXEC@hr=sp_OAMethod@object,’Configuration.Fields.Update’,null
EXEC@hr=sp_OASetProperty@object,’To’,@To
EXEC@hr=sp_OASetProperty@object,’Bcc’,@Bcc
EXEC@hr=sp_OASetProperty@object,’From’,@From
EXEC@hr=sp_OASetProperty@object,’Subject’,@Subject
EXEC@hr=sp_OASetProperty@object,’TextBody’,@Body
EXEC@hr=sp_OAMethod@object,’Send’,NULL
--判定出错
IF@hr<>0
BEGIN
EXECsp_OAGetErrorInfo@object
RETURN@object
END
PRINT’success’
EXEC@hr=sp_OADestroy@object
GO注重:必须确保安装Smtp,可以访问CDO对象。
上一篇:DB2:数据同步方面的经验 下一篇:一些Select检索高级用法
文章评论
共有位Admini5网友发表了评论 查看完整内容