데이터베이스 메일 아키텍처
데이터베이스 메일은 다음 주요 구성 요소로 이루어집니다.
구성 및 보안 구성 요소
데이터베이스 메일은 msdb 데이터베이스에 구성 및 보안 정보를 저장합니다. 구성 및 보안 개체는 데이터베이스 메일에 사용되는 프로필과 계정을 만듭니다.
메시징 구성 요소
msdb 데이터베이스는 메일 호스트 데이터베이스의 역할을 수행하며 데이터베이스 메일이 전자 메일을 보낼 때 사용하는 메시징 개체를 보유합니다. 이러한 개체에는 sp_send_dbmail 저장 프로시저 및 메시지에 대한 정보를 보유하는 데이터 구조가 포함됩니다.
데이터베이스 메일 실행 파일
데이터베이스 메일 실행 파일은 msdb 데이터베이스의 큐에서 읽은 메시지를 전자 메일 서버로 보내는 외부 프로그램입니다.
로깅 및 감사 구성 요소
데이터베이스 메일은 msdb 데이터베이스와 Microsoft Windows 응용 프로그램 이벤트 로그에 로깅 정보를 기록합니다.
데이터베이스 메일을 효과적으로 사용하기 위해 데이터베이스 메일 아키텍처를 완전히 이해할 필요는 없습니다. 그러나 데이터베이스 메일 구성 요소와 구성 요소의 상호 작용 방식을 이해하면 응용 프로그램을 디자인하고 문제를 해결하는 데 도움이 될 수 있습니다.
다음 그림에서는 데이터베이스 메일 아키텍처의 개요를 보여 줍니다.
데이터베이스 메일은 Service Broker 기술을 사용하는 큐 아키텍처를 기반으로 디자인되었습니다. 사용자가 sp_send_dbmail을 실행하면 이 저장 프로시저는 메일 큐에 항목을 삽입하고 전자 메일 메시지가 포함된 레코드를 만듭니다. 메일 큐에 새 항목이 삽입되면 외부 데이터베이스 메일 프로세스(DatabaseMail.exe)가 시작됩니다. 이 외부 프로세스는 전자 메일 정보를 읽고 전자 메일 메시지를 해당 전자 메일 서버로 보냅니다. 또한 보내기 작업의 결과로 상태 큐에 항목을 삽입합니다. 상태 큐에 새 항목이 삽입되면 전자 메일 메시지의 상태를 업데이트하는 내부 저장 프로시저가 시작됩니다. 데이터베이스 메일은 보낸 전자 메일 메시지나 보내지 않은 전자 메일 메시지를 저장할 뿐만 아니라 모든 전자 메일 첨부 파일을 시스템 테이블에 기록합니다. 데이터베이스 메일 뷰는 문제 해결을 위해 메시지 상태를 제공하며 저장 프로시저를 통해 데이터베이스 메일 큐를 관리할 수 있습니다.
msdb 데이터베이스에 있는 DatabaseMailUserRole 역할의 멤버만 sp_send_dbmail을 실행할 수 있습니다.