是否有可能在从数据库查询后每分钟发送自动电子邮件

本文关键字:电子邮件 每分钟 有可能 数据库 查询 是否 | 更新日期: 2023-09-27 18:18:54

我想在从数据库查询后发送电子邮件警报(检查一些数据)。它应该每分钟都发生。有可能做到吗?如何?

是否有可能在从数据库查询后每分钟发送自动电子邮件

是有可能的。为了使您能够发送电子邮件,您需要配置数据库邮件或SMTP服务器。有了这些组件,你可以随时发送电子邮件。

是,

您可以设置SQL Agent作业来执行查询并每分钟(或根据您指定的任何时间表)发送电子邮件。

SQL Agent Job reference:http://msdn.microsoft.com/en-us/library/ms175138.aspx

从数据库引用发送邮件:http://msdn.microsoft.com/en-us/library/ms190307.aspx

正如Paul所说,您需要确保您的环境配置为能够执行此操作(参见第二个链接的备注部分)

可以安排每分钟运行一次SQL Agent作业,以执行所需的T-SQL脚本。您可以考虑将代码封装在有条件地发送电子邮件(使用Database Mail)的存储过程中,然后在作业中执行该过程。在下面的例子。

CREATE PROC dbo.usp_check_for_alerts_and_send_email
AS
IF EXISTS(
    SELECT * FROM dbo.AlertTable
    )
BEGIN
    EXECUTE msdb.dbo.sp_send_dbmail
        @subject = 'Alert',
        @recipients = 'testaddress@example.com',
        @query = 'SELECT * FROM dbo.AlertTable';
END;
GO

下面是一个配置数据库邮件的示例脚本,如果您还没有这样做,您可以根据您的环境进行调整。

-- Enable Database Mail for this instance
EXECUTE sp_configure 'show advanced', 1;
RECONFIGURE;
EXECUTE sp_configure 'Database Mail XPs',1;
RECONFIGURE;
GO
-- Create a Database Mail account
EXECUTE msdb.dbo.sysmail_add_account_sp
    @account_name = 'Primary Account',
    @description = 'Account used by all mail profiles.',
    @email_address = 'myaddress@example.com',
    @replyto_address = 'myaddress@example.com',
    @display_name = 'Database Mail',
    @mailserver_name = 'mail.example.com';
-- Create a Database Mail profile
EXECUTE msdb.dbo.sysmail_add_profile_sp
    @profile_name = 'Default Public Profile',
    @description = 'Default public profile for all users';
-- Add the account to the profile
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
    @profile_name = 'Default Public Profile',
    @account_name = 'Primary Account',
    @sequence_number = 1;
-- Grant access to the profile to all msdb database users
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'Default Public Profile',
    @principal_name = 'public',
    @is_default = 1;
GO

你想每天发送1,440封邮件??

都给一个人吗?你认为收件人多快会创建一个删除邮件规则?

一些isp可能会将您标记为垃圾邮件发送者并切断您的互联网/电子邮件访问。

当某些参数超出预期范围时,发送电子邮件是否更有意义?

是的,这是可以做到的,但应该这样做吗?