2017-06-01 3 views
0

J'ai une webapp conçue dans asp.net mvc qui envoie des emails via smtp pas de problème via l'événement click. Mais j'ai besoin d'un moyen de vérifier automatiquement chaque mois une certification si elle a expiré et envoyer un courriel à cet utilisateur. Je suis en train de lire le serveur SQL ou le service Windows. Lequel recommandez-vous et pourriez-vous fournir votre lien pour moi de lire à ce sujet. Merci.meilleur moyen d'envoyer automatiquement un courriel mensuel si la certification a expiré?

+1

est la date de certification stockée dans le serveur SQL? Si c'est le cas, configurez un travail SQL qui vérifie la date de la certification et utilisez sp_send_dbmail s'il a expiré. Juste l'une des nombreuses façons. – scsimon

+0

ou vous pouvez envoyer le courrier sur la base de la date de certification en utilisant les services de fenêtre. Suivez le lien ci-dessous http://www.c-sharpcorner.com/UploadFile/bba51c/create-windows-service-to-send-mail-daily-using-Asp-Net-and/ –

Répondre

0

Pourquoi s'embêter? Sql Server ne se soucie pas de la date d'expiration ...

Blague à part, vous remarquerez probablement qu'un certain nombre de certificats internes fournis avec Sql Server ont expiré. MS ne s'en soucie pas mais vous devriez probablement vous assurer de les ignorer dans toute alerte que vous recevez.

Vous pouvez utiliser une politique (SSMS \ Management \ Policies) pour vous avertir, quelque chose comme:

Declare @object_set_id Int 
Exec msdb.dbo.sp_syspolicy_add_object_set @object_set_name=N'Certs_ObjectSet', @facet=N'Certificate', @[email protected]_set_id Output 
Select @object_set_id 

Declare @target_set_id Int 
Exec msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'Certs_ObjectSet', @type_skeleton=N'Server/Database/Certificate', @type=N'CERTIFICATE', @enabled=True, @[email protected]_set_id Output 
Select @target_set_id 

Exec msdb.dbo.sp_syspolicy_add_target_set_level @[email protected]_set_id, @type_skeleton=N'Server/Database/Certificate', @level_name=N'Certificate', @condition_name=N'', @target_set_level_id=0 
Exec msdb.dbo.sp_syspolicy_add_target_set_level @[email protected]_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'', @target_set_level_id=0 


Go 

Declare @policy_id Int 
Exec msdb.dbo.sp_syspolicy_add_policy @name=N'Certs', @condition_name=N'Certs', @execution_mode=0, @[email protected]_id Output, @object_set=N'Certs_ObjectSet' 
Select @policy_id