Another option is to use Database Auditing to log deletions to the Windows Event Log. You can then attach a task to email you when the event occurs.
-- Create the audit
USE [master];
GO
CREATE SERVER AUDIT [Notify_OS_Log]
TO APPLICATION_LOG
WITH
( QUEUE_DELAY = 1000
,ON_FAILURE = CONTINUE
);
GO
-- Attach specification to audit
USE My_Database; -- Your db here
GO
CREATE DATABASE AUDIT SPECIFICATION Audit_Deletion_on_MyTable
FOR SERVER AUDIT [Notify_OS_Log]
ADD (DELETE
ON My_Table -- your table here
BY dbo)
WITH (STATE = ON);
GO
-- Enable Audit
ALTER SERVER AUDIT [Notify_OS_Log]
WITH (STATE = ON);
GO
In the Windows Task Scheduler, create a new basic task with a name that makes sense (e.g. "DB Deletion Event"). Set it to fire "When an event is logged":
Log: Application
Source: MSSQLSERVER (or MSSQL$SqlInstanceName)
Event ID: 24310
In the Action section, select "Send an Email" and fill in the email details.
This will not use SQLMAIL and you will need access to the host OS in order to set this up, but it should do what you are looking for.
You can use this in conjunction with Change Data Capture, if you need immediate access to the data that changed. However, nothing beats a good backup/restore strategy. If you keep the db in Full Recovery model (and keep a schedule of Full and Log backups) you can use the most recent backup plus a tail-log backup to restore a new copy of the database to the point in time just before the deletion.
Also, an ounce of prevention is worth a pound of cure. You can always remove delete privileges from everyone and only enable them temporarily. It all depends on your situation.
[1] https://msdn.microsoft.com/en-us/library/cc280425(v=sql.105).aspx - Set up an audit
[2] http://blogs.technet.com/b/jhoward/archive/2010/06/16/getting-event-log-contents-by-email-on-an-event-log-trigger.aspx - Use the Event Viewer to create a scheduled task