SQL Server Database Mail telah diperkenalkan di SQL Server 2005. Database Mail adalah komponen yang dapat mengirim email menggunakan SQL Server Engine. Menggunakan Database Mail, administrator atau pengembang dapat mengirim output kueri ke pengguna akhir. DBA dapat mengonfigurasinya untuk mendapatkan peringatan dan pemberitahuan email. Database Mail menggunakan SMTP (Simple Mail Transfer Protocol) untuk mengirimkan email ke penerima.
Dalam artikel ini, saya akan mendemonstrasikan cara mengkonfigurasi SQL Server Database Mail.
Prasyarat untuk Mengaktifkan Database Mail
Untuk mengaktifkan fitur email database, prasyarat berikut diperlukan:
- Broker Layanan untuk database MSDB harus diaktifkan.
- Layanan Agen Server SQL harus berjalan.
Broker Layanan harus diaktifkan
Database Mail membutuhkan broker layanan untuk mengantri email. Jika broker layanan dinonaktifkan, email database tidak dapat mengirimkan pesan broker layanan dan tetap berada dalam antrian broker layanan.
Untuk memverifikasi bahwa broker layanan diaktifkan, jalankan kueri berikut:
USE master go SELECT database_id AS 'Database ID', NAME AS 'Database Name', CASE WHEN is_broker_enabled = 0 THEN 'Service Broker is disabled.' WHEN is_broker_enabled = 1 THEN 'Service Broker is Enabled.' END AS 'Service Broker Status' FROM sys.databases WHERE NAME = 'msdb.'
Outputnya terlihat sebagai berikut:
Jika broker layanan di database MSDB dinonaktifkan, jalankan kueri berikut secara berurutan untuk mengaktifkan broker layanan:
Use master go alter database [MSDB] set single_user with rollback immediate GO alter database [MSDB] set Enable_Broker GO alter database [MSDB] set multi_user with rollback immediate GO
Layanan Agen Server SQL Harus Berjalan
Database Mail mengirim email atau pesan menggunakan layanan agen SQL Server. Jika layanan agen tidak berjalan, maka SQL Server tidak dapat mengirim email. Saat layanan agen tidak berjalan, semua pesan akan diantrekan, dan saat layanan agen dimulai, semua pesan dalam antrean akan dikirimkan.
Untuk memverifikasi status layanan agen, jalankan perintah berikut di studio manajemen SQL Server.
use master go EXEC xp_servicecontrol N'querystate',N'SQLAgent$CMS'
Outputnya terlihat sebagai berikut:
Jika layanan agen SQL Server tidak berjalan, maka kita harus memulainya. Untuk memulai layanan Agen Server SQL, buka Layanan , buka Panel Kontrol>> Alat Administrasi>> Layanan . Dalam daftar layanan, cari SQL Server Agent . Klik kanan Agen Server SQL dan pilih Mulai, seperti terlihat pada gambar berikut:
Setelah broker layanan diaktifkan, dan Layanan Agen SQL dimulai, aktifkan email database dengan mengubah parameter konfigurasi instans database. Secara default, fitur email database tidak diaktifkan. Itu harus diaktifkan dengan mengubah nilai konfigurasi Database Mail XPs dari 0 hingga 1. Sekali lagi, Database Mail XPs parameter adalah opsi lanjutan; oleh karena itu, sebelum mengubahnya, ubah Tampilkan opsi lanjutan parameter konfigurasi dari 0 hingga 1.
Untuk mengaktifkan email database, jalankan kueri berikut secara berurutan:
USE master Go EXEC sp_configure 'show advanced options', 1 --Enable advance option Go RECONFIGURE Go EXEC sp_configure 'Database Mail XPs,' 1 --Enable database Mail option Go RECONFIGURE Go EXEC sp_configure 'show advanced options', 0 --Disabled advanced option Go RECONFIGURE Go
Setelah Database Mail diaktifkan, buat profil email database dan akun email database.
Mengonfigurasi Email Basis Data
Setelah semua prasyarat terpenuhi, konfigurasikan akun email database dan profil email database.
Membuat Profil dan Akun Email Basis Data
Untuk mengonfigurasi akun email database dan profil email database, Buka SQL Server Management Studio. Di Object Explorer, Perluas Manajemen dan klik kanan Configure Database Mail , seperti yang ditunjukkan pada gambar berikut:
Wizard Konfigurasi Email Database kotak dialog terbuka. Pada kotak dialog, pilih Setup Database Mail dengan melakukan tugas berikut tombol radio dan klik Berikutnya .
Sekarang, di Profil Baru kotak dialog, berikan nama profil, deskripsi yang opsional, dan klik tombol Tambah tombol untuk membuat akun SMTP. Anda dapat mengonfigurasi beberapa akun SMTP. Saat email Database mengirim email, email tersebut menggunakan akun SMTP berdasarkan prioritas yang tercantum di akun SMTP tampilan bergaris. Jika akun gagal saat mengirim email, profil menggunakan akun berikutnya dalam daftar prioritas. Lihat gambar berikut:
Di Akun Email Database Baru kotak dialog, berikan Nama Akun yang sesuai , Deskripsi (opsional), Alamat email , Nama Tampilan , Balas Email (Opsional), Server SMTP dan Nomor Port . Jika server SMTP menggunakan otentikasi SSL /TSL, maka centang Server memerlukan otentikasi aman pilihan. Dalam daftar autentikasi, pilih jenis autentikasi, yang digunakan untuk mengautentikasi server SMTP dan klik OK . Lihat gambar berikut:
Kembali ke Wizard Konfigurasi Email Database kotak dialog, akun SMTP akan terdaftar di akun SMTP tampilan bergaris. Lihat gambar berikut:
Klik Berikutnya untuk mengkonfigurasi keamanan profil email database. Kita dapat mengkonfigurasi profil email database baik pribadi atau publik. Hanya pengguna atau peran tertentu yang dapat mengirim email menggunakan Menggunakan profil pribadi. Setiap pengguna atau peran basis data dapat mengirim email menggunakan profil Publik. Pengguna harus dibuat dalam database MSDB, dan pengguna tersebut harus menjadi anggota peran database bernama DatabaseMailUserRole untuk mengirim email. Kita juga bisa menjadikan profil sebagai profil default. Setelah keamanan profil ditetapkan, klik Berikutnya untuk mengkonfigurasi parameter sistem. Lihat gambar berikut untuk melihat konfigurasinya:
Di Konfigurasikan Parameter Sistem jendela, kita dapat mengatur sejumlah upaya coba lagi, ukuran file lampiran maksimum, daftar ekstensi file yang dilarang dikirim sebagai lampiran. Lihat gambar berikut:
Setelah parameter sistem dikonfigurasi, klik Berikutnya untuk meninjau seluruh konfigurasi dan daftar tindakan. Klik Selesai untuk menyelesaikan konfigurasi email database. Lihat gambar berikut.
Setelah konfigurasi selesai, klik Tutup untuk keluar dari wizard. Lihat gambar berikut:
Membuat dan Mengonfigurasi Profil Email dan Akun Database menggunakan T-SQL
Kami juga dapat mengkonfigurasi profil email database dan akun email menggunakan T-SQL. Untuk mengonfigurasi email database, pengguna harus memiliki izin 'eksekusi' pada prosedur tersimpan berikut.
- Sysmail_add_account_sp
- Sysmail_add_profile_sp
- Sysmail_add_profileaccount_sp
Sysmail_add_account_sp prosedur membuat akun untuk email database. Untuk membuat akun untuk email database, jalankan kode berikut:
EXEC msdb.dbo.sysmail_add_account_sp @account_name = 'Database Mail Default SMTP account' , @description = 'This account will be used to send database mail' , @email_address = '[email protected]' , @display_name = 'DBA Support' , @replyto_address = '' , @mailserver_type = 'SMTP' , @mailserver_name = '192.168.1.60' , @port = 25 Go
Sysmail_add_profile_sp prosedur membuat profil email database. Untuk membuat profil email database, jalankan kode berikut:
-- Create a Database Mail profile EXEC msdb.dbo.sysmail_add_profile_sp @profile_name = 'Database Mail Profile' , @description = 'This profile will be used to send database mail' Go
Sysmail_add_profileaccount_sp prosedur menambahkan akun SMTP ke profil email database. Untuk menambahkan akun SMTP ke profil email database, jalankan kode berikut:
-- Add the account to the profile EXEC msdb.dbo.sysmail_add_profileaccount_sp @profile_name = 'Database Mail Profile' , @account_name = 'Database Mail Default SMTP account' , @sequence_number = 1 Go
Mengirim Surat Uji menggunakan Surat Basis Data
Setelah email database dikonfigurasi, seperti yang saya sebutkan sebelumnya, untuk mengirim email, pengguna harus dibuat di database MSDB dan pengguna ini harus menjadi anggota DatabaseMailUserRole . Hal ini memungkinkan pengguna database untuk mengirim email menggunakan Database Mail. Pengguna database harus memiliki izin yang dijalankan pada prosedur tersimpan berikut, yang digunakan untuk mengelola email database:
- sysmail_help_status_sp
- sysmail_delete_mailitems_sp
- sysmail_allitems
- sysmail_event_log
- sysmail_faileditems
- lampiran sysmail_mail
- sysmail_sentitems
- sysmail_unsentitems
Untuk mengirim email percobaan menggunakan SSMS, Buka SQL Server Management Studio>> Perluas Manajemen di Manajemen SQL Server>> Klik kanan Database Mail dan pilih Kirim Surat Percobaan . Lihat gambar berikut:
The Kirim email percobaan kotak dialog terbuka. Di Profil Email Basis Data drop-down, pilih nama profil yang digunakan untuk mengirim email (Database Mail Profile), Di bagian To kotak teks, berikan alamat email penerima email dan klik Kirim Surat Percobaan . Lihat gambar berikut:
Kami juga dapat mengirim email menggunakan kode T-SQL. Untuk melakukannya, jalankan skrip T-SQL berikut:
use MSDB go EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Database Mail Profile' , @recipients = '[email protected]' , @subject = 'Automated Test Results (Successful)' , @body = 'The stored procedure finished successfully.' Go
Daftar tabel penting untuk memeriksa status email
Berikut adalah daftar tabel yang digunakan untuk melihat konfigurasi database mail, database account dan status email.
[id tabel=53 /]
Untuk melihat log email database, buka SQL Server Management studio>> luaskan Manajemen>> Klik kanan Database Mail dan pilih Lihat Log Email Basis Data . Lihat gambar berikut:
Penampil file log dialog terbuka, seperti yang ditunjukkan pada gambar berikut:
Menjatuhkan Akun Email dan Profil Database
Untuk menjatuhkan profil Database Mail, pertama-tama jatuhkan profil Database Mail. Untuk melakukannya, buka Configure Database Mail Wizard, seperti yang dijelaskan di awal artikel. Di wizard, pilih Kelola akun dan profil Database Mail dan klik Berikutnya . Lihat gambar berikut:
Di bagian Kelola Profil dan Akun s, pilih Lihat Ubah Atau hapus profil yang ada dan klik Berikutnya . Lihat gambar berikut:
Di Kelola Profil yang Ada halaman, pilih nama profil yang ingin Anda hapus dari Nama Profil kotak tarik-turun dan klik Hapus tombol dan klik Berikutnya. Lihat gambar berikut:
Selanjutnya, layar akan menampilkan aksi musim panas, tinjau ringkasannya dan klik Selesai untuk menjatuhkan profil. Lihat gambar berikut:
Setelah menjatuhkan profil email basis data, jatuhkan akun basis data. Untuk melakukannya, di Buka Wizard Konfigurasi Email Database>> pilih Kelola akun dan Profil Database Mail>> Pilih Lihat, ubah, atau hapus akun yang ada opsi dan klik Berikutnya. Lihat gambar berikut:
Di Kelola akun yang ada halaman, dari Nama Akun kotak tarik-turun, pilih nama akun yang ingin Anda hapus dan klik tombol Hapus tombol, seperti yang ditunjukkan pada gambar berikut:
Layar berikut akan menampilkan aksi musim panas, tinjau ringkasannya dan klik Selesai untuk menjatuhkan akun. Lihat gambar berikut:
Melepas Akun Email Database dan Profil menggunakan T-SQL
Anda juga dapat menghapus akun email database dan profil email database dengan menjalankan T-SQL Script. Untuk menghapus profil database dan akun, jalankan kode berikut:
IF EXISTS(SELECT * FROM msdb.dbo.sysmail_profileaccount pa INNER JOIN msdb.dbo.sysmail_profile p ON pa.profile_id = p.profile_id INNER JOIN msdb.dbo.sysmail_account a ON pa.account_id = a.account_id WHERE p.name = 'Database Mail Profile' AND a.name = 'Database Mail Default SMTP account') BEGIN EXECUTE msdb.dbo.sysmail_delete_profileaccount_sp @profile_name = 'Database Mail Profile',@account_name = 'Database Mail Default SMTP account' END IF EXISTS(SELECT * FROM msdb.dbo.sysmail_account WHERE name = 'Database Mail Default SMTP account') BEGIN EXECUTE msdb.dbo.sysmail_delete_account_sp @account_name = 'Database Mail Default SMTP account' END IF EXISTS(SELECT * FROM msdb.dbo.sysmail_profile WHERE name = 'Database Mail Profile') BEGIN EXECUTE msdb.dbo.sysmail_delete_profile_sp @profile_name = 'Database Mail Profile' END
Untuk memverifikasi bahwa email database dan akun database telah dihapus, jalankan kueri berikut:
SELECT * FROM msdb.dbo.sysmail_profileaccount pa INNER JOIN msdb.dbo.sysmail_profile p ON pa.profile_id = p.profile_id INNER JOIN msdb.dbo.sysmail_account a ON pa.account_id = a.account_id WHERE p.name = 'Database Mail Profile' AND a.name = 'Database Mail Default SMTP account'
Ringkasan
Dalam artikel ini, saya telah menjelaskan:
- Apa itu Database Mail dan Tujuannya?
- Prasyarat untuk mengonfigurasi Database Mail.
- Konfigurasi akun Database Mail dan Database Mail Profile menggunakan SQL Server management studio.
- Konfigurasi akun Database Mail dan Database Mail Profile menggunakan T-SQL.
- Kirim email Uji menggunakan SSMS dan T-SQL.
- Lepaskan profil Database Mail dan akun Database Mail dengan anggun.