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 */