说是新方式,其实也是早就用到的技术了,所以放上来!
在.NET中,大家知道,可以使用System.Web.Mail来发送邮件。在Framework 1.1下支持验证。
private void Page_Load(object sender, System.EventArgs e)
{
MailMessage mail = new MailMessage();
mail.To = "me@mycompany.com";
mail.From = "you@yourcompany.com";
mail.Subject = "this is a test email.";
mail.Body = "Some text goes here";
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "my_username_here"); //set your username here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "super_secret"); //set your password here
SmtpMail.SmtpServer = "mail.mycompany.com"; //your real server goes here
SmtpMail.Send( mail );
}
以前我曾写过在.NET下发送邮件的方法,详见:
http://dev.csdn.net/develop/article/17/17189.shtm
SQL Server中,我们一般使用SQL本身的邮件发送方式,但需要配置Exchage Server、Outlook等,也是一个比较繁琐的事情。很多人抱怨说配置不成功。
其实,我们可以在 SQL Server中创建 OLE 对象实例,调用IIS SMTP自带的发送组件来实现邮件发送。
我们建立这个存储过程,你需要修改的地方是,SmtpServer的名字
Create PROCEDURE sys_sendmail @From varchar(100) , @To varchar(100) , @Bcc varchar(500), @Subject varchar(400)=" ", @Body ntext =" "
AS
Declare @object int
Declare @hr int
EXEC @hr = sp_OACreate 'CDO.Message', @object OUT
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'
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
EXEC sp_OAGetErrorInfo @object
RETURN @object
END
PRINT 'success'
EXEC @hr = sp_OADestroy @object
GO
注意:必须确保安装Smtp,可以访问CDO对象。
分享到:
相关推荐
在SQL200 SQLServer 2005和SQLServer 2008中设置发送邮件
5.要运行带有 Exchange Server 的 "SQL 邮件 ",MSSQLServer 服务必须在第一步中登录的同一个用户帐户下运行。在 "控制面板 "中,双击 "服务 ",选择 MSSQLServer 服务,然后单击 "启动 "。 6.确认 "SQL 邮件 "的...
SQL SERVER发送邮件设定全篇备忘整理。
使用SQL存储过程发送邮件,方法非常简单
SQL Server 2012 配置数据库邮件
sqlserver发送带游标的邮件发送存储过程
一个SQL脚本,记录数据库结构的变动,自动发送邮件到指定用户。
新增用户发送邮件和手机短信的SqlServer触发器
sql server 发送html格式的邮件,参考代码如下: DECLARE @tableHTML NVARCHAR(MAX) ; -- 获取当前系统时间,和数据统计的时间 set @d_nowdate = convert(datetime,convert(varchar(10),dateadd(day,-1,getdate()...
如果在维护模式下安装新的 SQL Server 2005 组件,系统将提示您指定 SQL Server 2005 安装媒体中 Setup.exe 文件的位置。指定该文件位置时,路径中一定要包含“Setup.exe”。例如,路径“D:\”将失败,而“D:\Setup....
配置database mail后测试邮件正常,但job执行失败后不发邮件的解决办法
有些人配置了数据库邮件但仍然发送失败,其中有个环节被忽略了,这个文档里有说明。
数据库邮件是从 SQL Server数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件。邮件中可以包含查询结果,还可以包含来自网络中任何资源的文件
现在工作中碰到了需要利用sqlserver发送邮件的问题,特整理文字如下: 目的:利用Sqlserver代理的邮件会话建立操作员监控作业完成情况 测试环境: 操作系统:windows 2003/windows xp OutLook: OutLook 2003 测试的...
以图片形式,说明如何在SQLServer2008下创建计划任务,并且配置计划任务,使之在执行成功后,自动发送邮件给指定的管理员。
SQL Server 2005的设置如下: 1.运行SQL Server Surface Area Configuration->Surface Area Configuration for features->选择Database Mail-...打开SQL Server Agent->Operators->建立一个新的Operator 4.建立一个新Jo
在 SQL Server 2005 中配置数据库邮件 适合发送提醒邮件 欢迎访问http://121.18.78.216
首先是要搭建一个自动发送邮件的平台,这个用sql server 2008(sql server 2005也有)的database mail就能很方便的实现。这个完成了以后就能够发送简单的邮件了,但是这样在应用中往往是不够,我们还要需要建一个job...
在SQL SERVER中利用扩展存储过程发送电子邮件.pdf
SQL Server 2008 通过配置数据库邮件实现发送邮件功能.doc