通过SQL发送邮件,SQL发送Email(转)

转来的一个经典,收藏一下

 

 

以下利用SQL来发送邮件的资料整理于微软官方。

如何将 IIS SMTP 服务配置为中继 SMTP 邮件

配置智能主机

  1. 单击“开始”,指向“程序”,指向“管理工具”,然后
    单击“Internet 服务管理器”以打开 IIS 管理器。
  2. 打开您的服务器树。右键单击“默认 SMTP 虚拟服务器”,然后单击“属性”。
  3. 找到“传递”选项卡,然后单击“高级”。
  4. 在“智能主机”文本框中键入您的 SMTP 邮件服务器的名称。如果您不知道 SMTP 邮件服务器的名称,请与您的邮件管理员联系。
  5. 确保简单邮件传输协议 (SMTP) 服务正在运行。SMTP 服务是 IIS 管理服务的一部分。因此,IIS 管理服务也必须正在运行。

创建发送 CDONTS 电子邮件的存储过程

注意:本文中作为示例列出的公司、组织、产品、域名、电子邮件地址、徽标、人名、地名和事件完全是虚构的。决无意影射,也不应由此臆测任何真实的公司、组织、产品、域名、电子邮件地址、徽标、人名、地名或事件。

您可以使用类似如下的代码在数据库中创建一个存储过程,使之通过使用 SQL Server OLE 自动化存储过程调用 CDONTS 对象模型来发送电子邮件。

CREATE PROCEDURE [dbo].[sp_send_cdontsmail] 
@From varchar(100),
@To varchar(100),
@Subject varchar(100),
@Body varchar(4000),
@CC varchar(100) = null,
@BCC varchar(100) = null
AS
Declare @MailID int
Declare @hr int
EXEC @hr = sp_OACreate 'CDONTS.NewMail', @MailID OUT
EXEC @hr = sp_OASetProperty @MailID, 'From',@From
EXEC @hr = sp_OASetProperty @MailID, 'Body', @Body
EXEC @hr = sp_OASetProperty @MailID, 'BCC',@BCC
EXEC @hr = sp_OASetProperty @MailID, 'CC', @CC
EXEC @hr = sp_OASetProperty @MailID, 'Subject', @Subject
EXEC @hr = sp_OASetProperty @MailID, 'To', @To
EXEC @hr = sp_OAMethod @MailID, 'Send', NULL
EXEC @hr = sp_OADestroy @MailID
接下来使用您刚创建的存储过程并提供正确的参数:
exec sp_send_cdontsmail 'someone@example.com','someone2@example.com','Test of CDONTS','It works'
注意:只有“sysadmin”固定服务器角色的成员才可以运行 OLE 自动化存储过程。如果 SQL Server 用户不是“sysadmin”固定服务器角色的成员,则不能使用本例中提到的存储过程来发送电子邮件。在这种情况下,您可能必须开发一个客户端应用程序来通过 CDONTS 发送电子邮件。例如,您可以使用 Microsoft Visual Basic 应用程序。

 

CDONTS 将电子邮件发送到本地 SMTP 虚拟服务器中。该服务器随后将该电子邮件路由到“智能主机”文本框中指定的 SMTP 邮件服务器中。SMTP 邮件服务器将邮件发送到“To:”参数中指定的电子邮件地址(本例中为“someone2@example.com”)。“From:”参数
中指定的名称是电子邮件的发件人(本例中为“someone@example.com”),“Test of CDONTS”是电子邮件的主题,而消息“It works”是电子邮件的正文。此电子邮件没有抄送给他人,因为您没有为“CC”或“BCC”字段提供参数。

posted @ 2010-02-26 17:55  韩天伟  阅读(555)  评论(0编辑  收藏  举报