web-dev-qa-db-ja.com

AzureでホストされているSQL ServerでDBメールはサポートされていますかVM(IaaS)?

AzureでホストされているSQL ServerにDBメールが存在していますかVM(IaaS)?

DBメールがサポートされていない場合、どのような機能を利用できますか?

データベースメールは、Azure IaaS上のSQL Serverで利用できます。私の提案は、仮想マシンにSMTPリレーを提供するSendGrid電子メール配信サービス(Azure Marketplaceで利用可能)を使用して構成することです。このサービスを利用して、アラートまたはレポートのニーズに合わせてデータベースメールをセットアップします。

ここ Microsoft AzureでSendGridサービスをセットアップする方法を説明します。

SendGridサービスをセットアップしたら、SQLサーバーで構成できますVM下に示すように。

まず、sp_configureで有効にします。

/*
   Turn on database mail
*/

-- Select the correct database
USE [msdb]
GO

-- Just shows standard options
sp_configure
GO

-- Turn on advance options
sp_configure 'show advanced options', 1;
GO

-- Reconfigure server
RECONFIGURE;
GO

-- Turn on database xp's
sp_configure 'Database Mail XPs', 1;
GO

-- Reconfigure server
RECONFIGURE

次に、メールアカウントを作成します。

/*
   Creating mail account with Send Grid SMTP server
*/

-- Create a Database Mail account 1
EXEC msdb.dbo.sysmail_add_account_sp
  @account_name = 'act_Default_Email',
  @description = 'Mail account for use by all database users.',
  @email_address = '[email protected]',
  @replyto_address = '[email protected]',
  @display_name = 'SQL SERVER (IAAS-SQL16DEV)',
  @mailserver_name = 'smtp.sendgrid.net',
  @username = '[email protected]',
  @password = 'enter your unique password';
GO

-- Show the new mail accounts
EXEC msdb.dbo.sysmail_help_account_sp;
GO

さらに、メールプロファイルを設定する必要があります。

/*
   Creating a mail profile
*/

-- Create a Database Mail profile
EXEC msdb.dbo.sysmail_add_profile_sp
  @profile_name = 'prf_Default_Email',
  @description = 'Profile used for administrative mail.' ;
GO

-- Show the new mail profile
EXEC msdb.dbo.sysmail_help_profile_sp;
GO

次のステップは、メールアカウントをプロファイルにリンクすることです。

/*
  Linking the mail profile to the account
*/

-- Add the account 1 to the profile
EXEC msdb.dbo.sysmail_add_profileaccount_sp
  @profile_name = 'prf_Default_Email',
  @account_name = 'act_Default_Email',
  @sequence_number = 1 ;
GO

-- Show the link between profile and accounts
EXEC msdb.dbo.sysmail_help_profileaccount_sp @profile_name = 'prf_Default_Email';

次のステップでは、メールプロファイルへのパブリックアクセスを許可するようにデータベースメールを構成します。これにより、データベースユーザーはメールを送信できます。

/*
   Given public access to profile
*/

-- Grant access to the profile to all users in the msdb database
EXEC msdb.dbo.sysmail_add_principalprofile_sp
  @profile_name = 'prf_Default_Email',
  @principal_name = 'public',
  @is_default = 1 ;

-- Show the new default profile
EXEC msdb.dbo.sysmail_help_principalprofile_sp

最後に、次のコードを使用してこのソリューションを検証します。

/*
   Send test message
*/

-- Plain text message
EXEC msdb.dbo.sp_send_dbmail
  @profile_name = 'prf_Default_Email',
  @recipients = '[email protected]',
  @body = 'The stored procedure finished successfully.',
  @subject = 'Automated Success Message' ;
GO
3
Alberto Morillo

はいそれはSMTPサーバーの1つの制限で行います。回避するには、これら2つの記事をお読みください。 SMTPサーバー以外では、オンプレミスとSQL Server on Azure Cloudの違いを認識していません。

Azureでの送信SMTP接続の問題のトラブルシューティング オンラインで予約

Azure仮想マシンでのSMTPサーバーのセットアップ by John Doyle

2
SqlWorldWide