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
はいそれはSMTPサーバーの1つの制限で行います。回避するには、これら2つの記事をお読みください。 SMTPサーバー以外では、オンプレミスとSQL Server on Azure Cloudの違いを認識していません。
Azureでの送信SMTP接続の問題のトラブルシューティング オンラインで予約
Azure仮想マシンでのSMTPサーバーのセットアップ by John Doyle