У меня был такой же запрос некоторое время назад, и я положил электронные письма в таблицу и отправил уведомление рецензенту.
Это не моя область, но если у вас есть службы безопасности электронной почты, вы можете поместить свою электронную почту (которую вы используете в профиле msdb) как спам, вы можете просмотреть ее и отклонить / освободить без каких-либо дополнительных действий. Я использовал Mimecast. Он хранит все подозрительные сообщения на сервере до тех пор, пока вы их не освободите.
По-моему, это невозможно, если вы делаете это вручную, но если вы все еще хотите это сделать, у меня есть сценарий для вас:
В основном: создайте таблицу и поместите все данные электронной почты в эту таблицу, которую вы хотите просмотреть. Он отправит вам уведомление. Если вы счастливы, выполните последнюю процедуру, чтобы освободить электронную почту.
--Create Reviews table
IF OBJECT_ID('EMailReviews') IS NOT NULL
DROP TABLE EMailReviews;
CREATE TABLE EMailReviews
(
Id INT NOT NULL IDENTITY(1,1)
--ProfileName?
,Recipients VARCHAR(MAX)
--,CopyRecipients VARCHAR(MAX)
,EMailSubject NVARCHAR(255)
,Body NVARCHAR(MAX)
,BodyFormat VARCHAR(20)
,ReplyTo VARCHAR(MAX)
,DateReceived DATETIME NOT NULL DEFAULT(SYSDATETIME())
,DateReviewed DATETIME
,Processed BIT NOT NULL DEFAULT(0)
);
--Create Procedure to insert the e-mail to review table and send notification to you.
IF OBJECT_ID('P_PutEMailToReviewQueue') IS NOT NULL
DROP PROCEDURE P_PutEMailToReviewQueue;
GO
CREATE PROCEDURE P_PutEMailToReviewQueue
@Recipients VARCHAR(MAX)
--,@CopyRecipients VARCHAR(MAX)
,@EMailSubject NVARCHAR(255)
,@Body NVARCHAR(MAX)
,@BodyFormat VARCHAR(20)
,@ReplyTo VARCHAR(MAX)
AS
DECLARE @Reviewer VARCHAR(100)='revieweremail@email.com' /*!!Put your e-mail to review!!*/
DECLARE @ReviewerEMailSubject NVARCHAR(MAX)=''
DECLARE @ReviewerEMailBody NVARCHAR(MAX)=''
--Put validations if necessary
INSERT INTO EMailReviews(Recipients,EMailSubject,Body,BodyFormat,ReplyTo)
VALUES (@Recipients,@EMailSubject,@Body,@BodyFormat,@ReplyTo)
DECLARE @Id VARCHAR(100)=CAST(SCOPE_IDENTITY()AS VARCHAR)
SET @ReviewerEMailBody = 'E-Mail Information below:'
+'<br>'
+'ID='+@Id
+'<br>'
+'Subject:'+ISNULL(@EMailSubject,'')
+'<br>'
+'Body:'+ISNULL(@Body,'')
+'<br>'
+'Recipients:'+ISNULL(@Recipients,'')
+'<br>'
+'ReplyTo:'+ISNULL(@ReplyTo,'')
+'<br>'
+'<br>'
+'<br>'
+'<br>'
+'After your review if you want to release the e-mail you need to run following script:'
+'<br>'
+'P_ReleaseEmail @Id ='+@Id
SET @ReviewerEMailSubject = 'Number '+@Id+' e-mail has been recieved. Review required!'
EXEC msdb.dbo.sp_send_dbmail
@recipients = @Reviewer
, @subject = @ReviewerEMailSubject
, @body = @ReviewerEMailBody
, @body_format ='HTML'
GO
/*
P_PutEMailToReviewQueue
@Recipients ='test@test.com'
,@EMailSubject ='Action Item Test'
,@Body ='BLA BLA'
,@BodyFormat ='HTML'
,@ReplyTo ='noreply@test.com'
*/
--Create procedure to release the e-mail.
IF OBJECT_ID('P_ReleaseEmail') IS NOT NULL
DROP PROCEDURE P_ReleaseEmail;
GO
CREATE PROCEDURE P_ReleaseEmail
@Id INT
AS
DECLARE
@Recipients VARCHAR(MAX)
--,@CopyRecipients VARCHAR(MAX)
,@EMailSubject NVARCHAR(255)
,@Body NVARCHAR(MAX)
,@BodyFormat VARCHAR(20)
,@ReplyTo VARCHAR(MAX)
SELECT @Recipients=Recipients
,@EMailSubject=EMailSubject
,@Body=Body
,@BodyFormat=BodyFormat
,@ReplyTo=ReplyTo
FROM EMailReviews
WHERE Id=@Id
EXEC msdb.dbo.sp_send_dbmail
@recipients = @Recipients
, @subject = @EMailSubject
, @body = @Body
, @body_format = @BodyFormat
, @reply_to = @ReplyTo
UPDATE EMailReviews SET DateReviewed=GETDATE()
,Processed=1
WHERE Id=@Id
GO
/*
P_ReleaseEmail
@Id =1;
select * from EMailReviews;
*/