科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何建立SQL Server 2005数据库邮件(2)

如何建立SQL Server 2005数据库邮件(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

数据库邮件(Database Mail)是SQL Server 2005数据库引擎中新增的一项简单实用的功能。

作者:builder.com.cn 来源:builder.com.cn 2007年9月3日

关键字: 邮件 SQL Server SQL Server 2005 数据库

  • 评论
  • 分享微博
  • 分享邮件

该是时候了解如何建立一个Database Mail账户了。在我们的例子中,我假设你正坐在一台你具有系统管理员访问权限的开发机器前。如果你没有系统管理员权限,你需要成为msdb数据库DatabaseMailUserRole的一员。

下面的脚本建立一些我在整个实例中都要用到的变量。注意:整个脚本将在msdb数据库中运行,Database Mail对象就保存在其中。

USE msdb

GO

DECLARE @ProfileName VARCHAR(255)

DECLARE @AccountName VARCHAR(255)

DECLARE @SMTPAddress VARCHAR(255)

DECLARE @EmailAddressVARCHAR(128)

DECLARE @DisplayUser VARCHAR(128)

这里我建立了ProfileName、AccountName、STMP服务器名称以及显示在电子邮件From(邮件来自)框中的地址。

SET @ProfileName = 'DBMailProfile';

SET @AccountName = 'DBMailAccount';

SET @SMTPAddress = 'mail.yoursmtpserver.com';

SET @EmailAddress = 'DBMail@yoursmtpserver.com';

SET @DisplayUser = 'The Mail Man';

下面的的脚本完成一些清理工作,以便如果我再次运行脚本,就不必担心出现错误。

IF EXISTS
(
SELECT * FROM msdb.dbo.sysmail_profileaccount pa      
JOIN msdb.dbo.sysmail_profile p ON pa.profile_id = p.profile_id      
JOIN msdb.dbo.sysmail_account a ON pa.account_id = a.account_id
WHERE      
p.name = @ProfileName AND      
a.name = @AccountName)
BEGIN      
PRINT 'Deleting Profile Account'      
EXECUTE sysmail_delete_profileaccount_sp      
@profile_name = @ProfileName,      
@account_name = @AccountName
END

IF EXISTS
(
SELECT * FROM msdb.dbo.sysmail_profile p 
WHERE p.name = @ProfileName
)
BEGIN      PRINT 'Deleting Profile.'      
EXECUTE sysmail_delete_profile_sp      
@profile_name = @ProfileName
END

IF EXISTS
(
SELECT * FROM msdb.dbo.sysmail_account a
WHERE a.name = @AccountName
)
BEGIN      PRINT 'Deleting Account.'     
EXECUTE sysmail_delete_account_sp      
@account_name = @AccountName
END

下面的脚本给系统增加账户(Account)、用户资料(Profile)和账户-用户资料(Account-Profile)关系。

EXECUTE msdb.dbo.sysmail_add_account_sp

@account_name = @AccountName,

@email_address = @EmailAddress,

@display_name = @DisplayUser,

@mailserver_name = @SMTPAddress

EXECUTE msdb.dbo.sysmail_add_profile_sp

@profile_name = @ProfileName 

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp

@profile_name = @ProfileName,

@account_name = @AccountName,

@sequence_number = 1 ;

现在一切都已经准备妥当,我将发送一封测试电子邮件。

EXEC msdb.dbo.sp_send_dbmail

@recipients=N'chapman.tim@gmail.com',

@body= 'Test Email Body', 

@subject = 'Test Email Subject',

@profile_name = @ProfileName

要检查消息是否发送成功,我可以对sysmail_allitems系统视图执行一次查询。

SELECT * FROM sysmail_allitems
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章