The following script will create a job that will run every minute to test if database mail can be sent from a job scheduled to run by the Sql Server Agent.
Simply find and replace the email address below with the email address you want to target:
testoperator@mail.com
Then run the script.
The operator ‘Test Operator’ and job ‘MailTest’ will be created.
The job is disabled by default, enable it to begin testing.
When you are finished run the commented out section at the bottom of the script to remove the test operator and job.
If you have just setup database mail for the first time the SQL Server Agent will need to be restarted.
/*
FIND AND REPLACE
testoperator@mail.com
*/
USE msdb;
GO
EXEC dbo.sp_add_operator @name = N'Test Operator'
,@enabled = 1
,@email_address = N'testoperator@mail.com'
GO
USE [msdb]
GO
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object: JobCategory [[Uncategorized (Local)]] Script Date: 31/07/2019 11:35:43 ******/
IF NOT EXISTS (
SELECT NAME
FROM msdb.dbo.syscategories
WHERE NAME = N'[Uncategorized (Local)]'
AND category_class = 1
)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class = N'JOB'
,@type = N'LOCAL'
,@name = N'[Uncategorized (Local)]'
IF (
@@ERROR <> 0
OR @ReturnCode <> 0
)
GOTO QuitWithRollback
END
DECLARE @jobId BINARY (16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name = N'MailTest'
,@enabled = 0
,@notify_level_eventlog = 0
,@notify_level_email = 3
,@notify_level_netsend = 0
,@notify_level_page = 0
,@delete_level = 0
,@description = N'No description available.'
,@category_name = N'[Uncategorized (Local)]'
,@owner_login_name = N'sa'
,@notify_email_operator_name = N'Test Operator'
,@job_id = @jobId OUTPUT
IF (
@@ERROR <> 0
OR @ReturnCode <> 0
)
GOTO QuitWithRollback
/****** Object: Step [Step 1] Script Date: 31/07/2019 11:35:44 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @jobId
,@step_name = N'Step 1'
,@step_id = 1
,@cmdexec_success_code = 0
,@on_success_action = 1
,@on_success_step_id = 0
,@on_fail_action = 2
,@on_fail_step_id = 0
,@retry_attempts = 0
,@retry_interval = 0
,@os_run_priority = 0
,@subsystem = N'TSQL'
,@command = N'SELECT 1'
,@database_name = N'master'
,@flags = 0
IF (
@@ERROR <> 0
OR @ReturnCode <> 0
)
GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId
,@start_step_id = 1
IF (
@@ERROR <> 0
OR @ReturnCode <> 0
)
GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @jobId
,@name = N'Job Schedule'
,@enabled = 1
,@freq_type = 4
,@freq_interval = 1
,@freq_subday_type = 4
,@freq_subday_interval = 1
,@freq_relative_interval = 0
,@freq_recurrence_factor = 0
,@active_start_date = 20190731
,@active_end_date = 99991231
,@active_start_time = 0
,@active_end_time = 235959
,@schedule_uid = N'f0741db6-488e-44da-8f5e-a3f0ed13835e'
IF (
@@ERROR <> 0
OR @ReturnCode <> 0
)
GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId
,@server_name = N'(local)'
IF (
@@ERROR <> 0
OR @ReturnCode <> 0
)
GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0)
ROLLBACK TRANSACTION
EndSave:
GO
/*
REMOVE OPERATOR AND JOB
*/
/*
USE msdb;
GO
EXEC sp_delete_operator @name = 'Test Operator';
EXEC sp_delete_job @job_name = N'MailTest';
GO
*/
Like this:
Like Loading...