데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

Azure SQL에서 이메일 보내기

 

·         Version : Azure SQL

 

Azure SQL Database Managed Instance Azure 클라우드에서 대부분의 SQL Server 기능을 사용할  있다이번 포스트에서는 Managed Instance에서 메일 프로필을 설정하고 이메일을 보내는 방법에 대해서 알아본다.

 

먼저 이메일 서버에 액세스하는데 필요한 로그인/암호 정보와 함께 실제 이메일을 보낼 전자 메일 서버의 주소가 포함된 이메일 계정 정보를 설정한다아래 스크립트를 참고하여 설정을 사용자에게 맞게 변경  실행 한다.

-- Create a Database Mail account

EXECUTE msdb.dbo.sysmail_add_account_sp

    @account_name = '...',

    @description = '...',

    @email_address = '$(loginEmail)',

    @display_name = '...',

    @mailserver_name = '$(mailserver)' ,

    @username = '$(loginEmail)' , 

    @password = '$(password)'

 

-- Create a Database Mail profile

EXECUTE msdb.dbo.sysmail_add_profile_sp

    @profile_name = 'AzureManagedInstance_dbmail_profile',

    @description = '...' ;

 

-- Add the account to the profile

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp

    @profile_name = 'AzureManagedInstance_dbmail_profile',

    @account_name = '...',

    @sequence_number = 1;

 

여기서 중요한것은 하나의 이메일 프로필만 만들  있으며 프로필명은 반드시 AzureManagedInstance_dbmail_Profile 이라고 해야 한다이렇게 하지 않으면 Managed Instance 프로필을 사용하여 이메일을 보낼  없다.

 

이메일 서버 설정이 완료되었으면 sp_configure에서 Database Mail XPs 옵션을 활성화 한다.

EXEC sp_configure 'show advanced options', 1; 

GO 

RECONFIGURE; 

GO 

EXEC sp_configure 'Database Mail XPs', 1; 

GO 

RECONFIGURE 

GO

 

이제 sp_send_dbmail  sp_notify_operator 프로시저를 사용하여 전자 메일을 보내 구성을 테스트할  있다전자 메일을 보내는 방법은 아래 스크립트를 참고 한다.

DECLARE @body VARCHAR(4000) = 'The email is sent with msdb.dbo.sp_send_dbmail from ' +@@SERVERNAME;

EXEC msdb.dbo.sp_send_dbmail

        @profile_name = 'AzureManagedInstance_dbmail_profile',

        @recipients = '$(email)',

        @body = @body,

        @subject = 'Azure SQL Instance - test email' ;

 

운영자에게 이메일을 보내기 위해서는 운영자 정보를 추가해야 한다아래 스크립트를 참고하여 운영자 이메일을 설정하여 그룹을 생성한다.

EXEC msdb.dbo.sp_add_operator

          @name = N'SQL DevOp',

          @enabled = 1,

          @email_address = N'$(email)',

          @weekday_pager_start_time = 080000,

          @weekday_pager_end_time = 170000,

          @pager_days = 62 ;

 

운영자 등록이 완료되었으며 아래 스크립트를 참고하여 설정이 정상적으로 되었는지 운영자에게 이메일 알림을 전송해본다.

DECLARE @body VARCHAR(4000) = 'The email is sent using sp_notify_operator from ' +@@SERVERNAME;

EXEC msdb.dbo.sp_notify_operator

              @profile_name = N'AzureManagedInstance_dbmail_profile',

              @name = N'SQL DevOp',

              @subject = N'Azure SQL Instance - Test Notification',

              @body = @body;

 

아래 예시는 Managed Instance에서 작업이 성공하거나 실패할  이메을 통해 운영자에게 알릴  있다.

EXEC msdb.dbo.sp_update_job

              @job_name=N'My job name',

              @notify_level_email=2,

              @notify_level_page=2,

              @notify_email_operator_name=N'SQL DevOp'

 

 

[참고자료]

https://blogs.msdn.microsoft.com/sqlserverstorageengine/2018/08/31/sending-emails-in-azure-sql-managed-instance/

 

 

2018-09-04 / Sungwook Kang / http://sqlmvp.kr

 

Azure SQL,  Managed Instance, SQL, database mail, XPs Mail, sp_send_dbmail, sp_notify_operator



출처: https://sqlmvp.tistory.com/1282?category=663684 [Database Lab]
No. Subject Author Date Views
2170 SQL Server 프로토콜과 SQLCMD를 사용한 연결 jevida(강성욱) 2019.04.23 1598
2169 SQL Server Edition 다운그레이드 후 확인사항 [1] jevida(강성욱) 2019.04.23 1503
2168 AlwaysOn 구성환경에서 Server Role 체크 후 Job Agent 실행 중지하기 jevida(강성욱) 2019.04.23 894
2167 SSRS에서 E-mail 세팅시 SSL 사용 유무 수정하기 jevida(강성욱) 2019.03.26 863
2166 SQL Linux Instance Name 변경 jevida(강성욱) 2019.03.26 741
2165 SQL Linux 업그레이드 jevida(강성욱) 2019.03.26 988
2164 Azure SQL Managed Instance 에서 SQL Agent의 Job history 기록 보관하기 jevida(강성욱) 2019.03.26 849
2163 Azure VM에서 SQL Server에 대한 저장소 구성 지침 jevida(강성욱) 2019.03.26 860
2162 Azure SQL에 도입된 새로운 집계 함수 APPROX_COUNT_DISTINCT jevida(강성욱) 2019.03.26 647
2161 Azure SQL의 데이터베이스 소유권 체인 jevida(강성욱) 2019.03.26 763
2160 Azure SQL의 내부 디스크 할당 방법 및 저장 가능 용량 확인 jevida(강성욱) 2019.03.26 785
» Azure SQL에서 이메일 보내기 jevida(강성욱) 2019.03.26 650
2158 Azure SQL에서 읽기 전용 복제본에 대한 접속 및 링크 서버 생성 jevida(강성욱) 2019.03.26 770
2157 Azure SQL에서 네트워크를 구성하는 방법 jevida(강성욱) 2019.03.26 496
2156 인덱스 재구성과 통계 업데이트시 발생하는 SQL Server Block jevida(강성욱) 2019.03.26 742
2155 SQL Server Scala UDF Inline 기능을 사용한 쿼리 성능 향상 jevida(강성욱) 2019.03.26 625
2154 SQL Server 가용성 그룹에 데이터베이스 자동으로 추가하기 jevida(강성욱) 2019.03.26 611
2153 SQL Server MySQL PostgreSQL 비교 jevida(강성욱) 2019.03.26 1049
2152 SQL Server 복잡한 쿼리가 옵티마이저에 미치는 영향과 옵티마이저 timeout jevida(강성욱) 2019.03.26 626
2151 SQL Server 2019 에서 문자열 잘림에 대한 향상된 에러 메시지 반환 jevida(강성욱) 2019.03.26 437





XE Login