1
  1. データベース メール プロファイル、アカウント、およびオペレータを作成および構成するための sysadmin 用のスクリプトを用意しました。彼はスクリプトを実行したので、一時的なジョブを作成しましたが、失敗しました。次に、ジョブが失敗したときに電子メール通知を設定します。ジョブを実行しましたが、電子メールが送信されません。次にmsdb.dbo.sp_send_dbmail 、同じオペレーターを使用して手順を実行しようとしましたが、電子メールを受け取りました。ジョブが失敗したときに電子メールを送信しない理由は何ですか? ジョブが失敗したときに電子メール通知を使用する場合に実行される手順はどれですか? とは異なりsp_send_dbmailますか?

  2. もう 1 つのことは、データベースのメール ログに電子メールの送信ステータスに関する情報がない (空である) ことです。ログを表示する権限がないのでしょうか?

  3. プロファイルを public, running として設定しましたが、logged as dbowner をdbo.sysmail_add_principalprofile_sp procedure実行している電子メールを送信しようとすると、エラーが発生します。EXECUTEアクセス許可が拒否されましたmsdb.dbo.sp_send_dbmail

SQL Server 2008 を使用しています。

これは、データベース メールを作成および構成するために sysadmin に渡した T-SQL コードです。

-- Create a Database Mail account

EXECUTE msdb.dbo.sysmail_add_account_sp
    @account_name = 'Mail Account',
    @description = 'Mail account for administrative e-mail.',
    @email_address = 'xx@xx.pl',
    @display_name = 'Job failure notification',
    @mailserver_name = 'xx.xx.xxx' ,
    @username = 'aaa',
    @password = 'xxx'

-- Create a Database Mail profile


 EXECUTE msdb.dbo.sysmail_add_profile_sp
    @profile_name = 'Database Mail Profile',
    @description = 'Profile used for job failure notifications.' ;

-- Add the account to the profile


EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
    @profile_name = 'Database Mail Profile',
    @account_name = 'Mail Account',
    @sequence_number =1 ;

-- Enable Mail profile in SQL Agent


EXEC master.dbo.xp_instance_regwrite 
      N'HKEY_LOCAL_MACHINE', 
      N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', 
      N'DatabaseMailProfile', 
      N'REG_SZ', 
      N'Database Mail Profile'
GO

-- Create new operator


EXEC msdb.dbo.sp_add_operator @name=N'SQL Job Failure', 
            @enabled=1, 
            @weekday_pager_start_time=90000, 
            @weekday_pager_end_time=180000, 
            @saturday_pager_start_time=90000, 
            @saturday_pager_end_time=180000, 
            @sunday_pager_start_time=90000, 
            @sunday_pager_end_time=180000, 
            @pager_days=0, 
            @email_address=N'xx@xx.pl', 
            @category_name=N'[Uncategorized]'
GO

-- Setting profile as public

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'Database Mail Profile',
    @principal_name = 'public',
    @is_default = 0 ;
4

1 に答える 1

7

これらのスクリプトを実行した後、SQL エージェントを再起動する必要があると思います。小切手

  • ジョブ通知ページで設定されているもの - 電子メールのチェックボックスをオンにし、オペレーターを定義する必要があります
  • Sql Agent を右クリック -> プロパティ - アラート設定 - 電子メール設定を提供する必要があります

この記事をチェックして、何も見逃していないことを確認してください。

于 2013-04-04T11:04:58.017 に答える