рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрд▓: Microsoft SQL рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реАрдзреЗ рдореЗрд▓ рдХрд░рдирд╛

рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ 2005 рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, SQL рд╕рд░реНрд╡рд░ рдореЗрдВ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреНрд╖рдорддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╢рд╛рд╕рдХ рдЕрдХреНрд╕рд░ рдЬрд░реВрд░реА рдЕрд▓рд░реНрдЯ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЕрдиреБрд╕реВрдЪрд┐рдд рдХрд╛рд░реНрдп рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рд╣реА рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк SQL рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реАрдзреЗ SQL рдХреНрд╡реЗрд░реАрдЬрд╝, рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐рдпрд╛рдБ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА SQL рд╕рд░реНрд╡рд░ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрд▓ рд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдПрдХ рдкрддреНрд░ рднреЗрдЬрдиреЗ рдореЗрдВ рдЖрдкрдХреЛ рдмрд╕ рдПрдХ рдорд┐рдирдЯ рд▓рдЧреЗрдЧрд╛, рдФрд░ рдЖрдк 15-20 рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдкреВрд░реЗ рдореЗрд▓рд┐рдВрдЧ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрд▓ (DBMail) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдЬ рдореИрдВ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рд╕рдорд╛рдпреЛрдЬрди


DBMail рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрд╕рдореЗрдВ рдПрдХ рдИрдореЗрд▓ рдЕрдХрд╛рдЙрдВрдЯ (SMTP) рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдБ рд╕реЗ рдкрддреНрд░ рднреЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдИрдПрдордПрдкреА рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

SQL рд╕рд░реНрд╡рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ DBMail рдХреА рд╕реНрдерд╛рдкрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХреА рдЧрдИ рд╣реИ рдФрд░ "MS SQL рд╕рд░реНрд╡рд░ 2005 рдФрд░ рдмрд╛рдж рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрд▓ рдХреА рд╕реНрдерд╛рдкрдирд╛" рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдирд╣реАрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ рдЬреЛ рдкрд╣рд▓реА рдмрд╛рд░ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ, рдмрджрд▓реЗ рдореЗрдВ, рдЕрдм рдПрдХ рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдКрдВрдЧрд╛: SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреИрд╕реЗ рдХрд░реЗрдВред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЗрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рддреЗрдЬ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдбреАрдмреАрдПрдордЖрдИрдПрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпрд╛ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдирдП рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпрд╣ рди рднреВрд▓реЗрдВ рдХрд┐ рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдореЗрдВ sysadmin рд╕рдореВрд╣ рдХреЗ рд╕рджрд╕реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдХрдореА рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдЧреАред

рдЪрд▓реЛ рд╕рд╣реА рдмрд╛рдд рдкрд░ рдЖрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ DBMail рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ:
--   Service broker -      -- ,  DBMail IF (SELECT is_broker_enabled FROM sys.databases WHERE [name] = 'msdb') = 0 ALTER DATABASE msdb SET ENABLE_BROKER WITH ROLLBACK AFTER 10 SECONDS GO --    DBMail sp_configure 'Database Mail XPs', 1 GO RECONFIGURE GO 

рдЕрдЧрд▓рд╛, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ DBMail рд╕реЗрд╡рд╛ рдЪрд▓ рд░рд╣реА рд╣реИ:
 EXECUTE msdb.dbo.sysmail_help_status_sp 

рдФрд░ рдЕрдЧрд░ рдпрд╣ рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ "STARTED" рдирд╣реАрдВ рд╣реИ), рддреЛ рдЗрд╕реЗ рдЕрдиреБрд░реЛрдз рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдПрдВ
 EXECUTE msdb.dbo.sysmail_start_sp 

рдЕрдм рдЖрдкрдХреЛ рдкрддреНрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд╕рдПрдордЯреАрдкреА рдЦрд╛рддрд╛ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрдкрдиреЗ рдПрд╕рдПрдордЯреАрдкреА рдЦрд╛рддреЗ рдХреЛ рдЗрд╕ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ MySite.ru рд╕рд╛рдЗрдЯ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЛ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рдкрдВрдЬреАрдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд╣ smtp.mysite.ru рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрдиреЗ admin@mysite.ru рдореЗрд▓рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
 --  SMTP-    EXECUTE msdb.dbo.sysmail_add_account_sp --   @account_name = 'admin@mysite.ru', --    @description = N'  admin@mysite.ru', --   @email_address = 'admin@mysite.ru', -- ,      ":" @display_name = N' MySite.ru', -- ,        --    ,   "no-reply" @replyto_address = 'no-reply@please.no-reply', --   IP- SMTP- @mailserver_name = 'smtp.mysite.ru', --  SMTP-,  25 @port = 25, --  .       --        @username = 'admin', --     @password = 'MyPassword', --  SSL  ,  SMTP-   SSL @enable_ssl = 1; --      EXECUTE msdb.dbo.sysmail_add_profile_sp @profile_name = 'MySite Admin Mailer'; --  SMTP-    EXECUTE msdb.dbo.sysmail_add_profileaccount_sp @profile_name = 'MySite Admin Mailer', @account_name = 'admin@mysite.ru', --   SMTP-   @sequence_number = 1; --        DatabaseMailUserRole  MSDB EXECUTE msdb.dbo.sysmail_add_principalprofile_sp @profile_name = 'MySite Admin Mailer', @principal_id = 0, @is_default = 1; 

рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП, рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЗрд▓ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрд╕рдПрдордЯреАрдкреА рдЦрд╛рддреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдмрдирд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдПрд╕рдПрдордЯреАрдкреА рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрддреНрд░ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реЗ SMTP рдЦрд╛рддреЗ рдХреЗ рд▓рд┐рдП, sysmail_add_profileaccount_sp рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ @fterence_number рдкреИрд░рд╛рдореАрдЯрд░ рдмреИрдХрдЕрдк рдЦрд╛рддреЗ рдХреЗ рд▓рд┐рдП 1 (рдКрдкрд░ рджреЗрдЦреЗрдВ) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдкреИрд░рд╛рдореАрдЯрд░ 2 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирд┐рдЬреА рдбреЛрдореЗрди рдореЗрд▓рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╣реБрдд рдмрдбрд╝реЗ рдореЗрд▓ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдЬрдм рдЖрдк рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрд▓рдмреЙрдХреНрд╕ (рдореЗрд▓рдмреЙрдХреНрд╕ рд╕реЗ yandex.ru, mail.ru, gmail.com, рдЖрджрд┐) рдкрд░ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрд╕рдПрдордЯреАрдкреА рд╕рд░реНрд╡рд░ рдЖрдкрдХреЛ рд╕реНрдкреИрдорд░ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдпрд╛ рд╕рдВрдкреВрд░реНрдг рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЛ рднреА рдмреНрд▓реЙрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдлрд╝рд╛рдпрд░рд╡реЙрд▓


рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо SQL рд╕рд░реНрд╡рд░ рдХреЛ рд╕реАрдзреЗ рдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рдХрд░реЗрдЧрд╛ред SQL рд╕рд░реНрд╡рд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдЗрд╕реЗ "DatabaseMail90.exe" рдпрд╛ "DatabaseMail.exe" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ "C: \ Program Files \ Microsoft SQL Server \ ... \ MSSQL \ Binn \" рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ (рдлрд╝рд╛рдпрд░рд╡реЙрд▓) рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рдЕрдиреБрдорддрд┐ рди рднреВрд▓реЗрдВред

рдкрд░реАрдХреНрд╖рдг рдкрддреНрд░


рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рд╕рдм рдареАрдХ рд╣реИред Sysadmin рд╕рдореВрд╣ рдХрд╛ рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, MSDB рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдорд╛рд▓рд┐рдХ (db_owner), рдпрд╛ DatabaseMailUserRole рднреВрдорд┐рдХрд╛ рд╡рд╛рд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрддреНрд░ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП DatabaseMailUserRole рднреВрдорд┐рдХрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ sp_addrolemember рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 sp_addrolemember @rolename = 'DatabaseMailUserRole', @membername = '<_>'; 

рдЕрдм рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрддреНрд░ рднреЗрдЬреЗрдВ:
 EXEC msdb.dbo.sp_send_dbmail --       @profile_name = 'MySite Admin Mailer', --   @recipients = 'friend@mysite.ru', --   @body = N'  SQL Server Database Mail', --  @subject = N' ', --        SQL- @query = 'SELECT TOP 10 name FROM sys.objects'; 

Sp_send_dbmail рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ MSDN рдкрд░ рдЗрд╕рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдкрддреНрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛:
 SELECT * FROM msdb.dbo.sysmail_allitems 

рдФрд░ рдлрд┐рд░ рд▓реЙрдЧ рдХреЛ рджреЗрдЦреЗрдВ:
 SELECT * FROM msdb.dbo.sysmail_event_log 

MSDN рд▓реЗрдЦ, "рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрд▓", рд╕рд╛рде рд╣реА рд▓реЗрдЦ, "DBAs рдХреЗ рд▓рд┐рдП SQL рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдп: рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрд▓ " рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рднреЗрдЬреЗ рдЧрдП рдкрддреНрд░ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
 SELECT sent_account_id, sent_date FROM msdb.dbo.sysmail_sentitems 

рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА


рдЕрдм рдорд╛рди рд▓реЗрдВ рдХрд┐ MySite.ru рд╕рд╛рдЗрдЯ рдХреЗ рдкреНрд░рд╢рд╛рд╕рдХ рдХреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рд╕рд╛рдЗрдЯ рдкрд░ рдирд╣реАрдВ рдЖрдП рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирд┐рдордВрддреНрд░рдг рднреЗрдЬрддреЗ рд╣реИрдВред рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдбреАрдмреАрдПрдордПрд▓ рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреА рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХрд░реНрд╕рд░ рдФрд░ рд▓реВрдк рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдХрд╛рд░реНрдп рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреБрдЫ рдФрд░ рд╢рд░реНрддреЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

 --     mysite USE mysite GO --  :  , , --     ,   DECLARE @user_id int, @user_name nvarchar(255), @last_login_date smalldatetime, @email_address varchar(255); --  @body       HTML DECLARE @body nvarchar(MAX); --  @no_mail   ,    DECLARE @no_mail int; --    ,      --        FAST_FORWARD DECLARE users CURSOR LOCAL FAST_FORWARD FOR SELECT id, name, last_login_date, email_address FROM users WHERE user_role IN (3,4,5) AND account_state = 2 AND email_address IS NOT NULL AND DATEDIFF(day, last_login_date, GETDATE()) > 365 ORDER BY id --      ,   3   WAITFOR TIME '03:00:00' --   users OPEN users --       FETCH NEXT FROM users INTO @user_id, @user_name, @last_login_date, @email_address --      WHILE @@FETCH_STATUS = 0 BEGIN -- ,       SET @no_mail = (SELECT id FROM users WHERE id = @user_id AND allow_mail = 0) --  ,      IF @no_mail IS NOT NULL BEGIN PRINT N' ' + @user_name + N'   .' FETCH NEXT FROM users INTO @user_id, @user_name, @last_login_date, @email_address CONTINUE END PRINT N'   ' + @email_address + N' ...' --    SET @body = N' <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <p><img style="float:right;" src="http://mysite.ru/images/logo.png"/></p> <p>, ' + @user_name + N'!</p> <p>     MySite.ru.       ,  ,            .</p> <p> !</p> <p> ,   MySite.ru</p> </body> </html>'; --   EXEC msdb.dbo.sp_send_dbmail @recipients = @email_address, @subject = N'     MySite.ru', @body = @body, --      'HTML',  'TEXT' @body_format = 'HTML', --        --@file_attachments ='C:\attachment.jpg', --        --@copy_recipients ='me@gmail.com', -- "Blind copy"  "carbon copy" -    , --         --@blind_copy_recipients ='me2@gmail.com', --        @profile_name = 'MySite Admin Mailer'; --    3   ,    SMTP- WAITFOR DELAY '00:00:03'; --         FETCH NEXT FROM users INTO @user_id, @user_name, @last_login_date, @email_address END --     CLOSE users GO 

рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред рдЖрдк рдЖрд░рд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In179819/


All Articles