[SQLSERVER] Hướng dẫn cấu hình và gởi email bằng câu lệnh Sqlserver
Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách cấu hình và gởi email trong Sqlserver . Database Mail là sự thay thế cho SQL Mail với nhiều cải tiến. Vì vậy, ta nên ngừng sử dụng SQL Mail và nâng cấp lên Database Mail. ...
Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách cấu hình và gởi email trong Sqlserver.
Database Mail là sự thay thế cho SQL Mail với nhiều cải tiến. Vì vậy, ta nên ngừng sử dụng SQL Mail và nâng cấp lên Database Mail.
Để gửi thư bằng Database Mail trong SQL Server, có 3 bước cơ bản cần phải được thực hiện:
- Create Profile and Account
- Configure Email
- Send Email
Bước 1: Create profile and Account
Tiếp theo
Tiếp tục chọn Next, và hộp thoại hiện ra => Ở hình dưới mình chọn mục đầu tiên để bắt đầu tạo profile cho email.
Ở hình này, các bạn nhập tên profile name, và nhấn nút Add để tạo mới account cho profile
Tiếp theo ở hình bên dưới, mình sẽ nhập các thông tin của tài khoản email mình vào, ở ví dụ bên dưới là mình sử dụng tài khoản Gmail để thực hiện.
OK, đến bước này các bạn cứ nhấn Next để hoàn tất phần cấu hình profile.
Bước 2: Configure Email
Sau khi Create profile and account thành công, chúng ta cần phải cấu hình Database Mail. Để cấu hình nó, chúng ta cần phải kích hoạt tham số Database Mail XPS thông qua stored procedure sp_configure, như bên dưới:
sp_CONFIGURE 'show advanced', 1 GO RECONFIGURE GO sp_CONFIGURE 'Database Mail XPs', 1 GO RECONFIGURE GO
=> Kết quả
Bước 3: Send Email
Sau khi thực hiện cấu hình xong, việc gửi một email đã sẵn sàng.
Trước tiên, chúng ta cần phải thực hiện một stored procedure sp_send_dbmail và cung cấp đủ các tham số cần thiết như hình dưới đây:
USE msdb GO EXEC sp_send_dbmail @profile_name='laptrinhvb', @recipients='hoangtunho2015@gmail.com', @subject='Test message', @body=N'Hướng dẫn gởi email trong sqlserver. https://laptrinhvb.net'
Sau khi tất cả các tham số đã được xác thực done , stored procedures được thực thi và các mail được xếp vào queued bởi Service Broker.
=> kết quả sau khi gởi email, mình mở Gmail lên kiểm tra email đến hay chưa.
Check config send mail trên SQL
EXEC msdb.dbo.sysmail_help_configure_sp; EXEC msdb.dbo.sysmail_help_account_sp; EXEC msdb.dbo.sysmail_help_profile_sp; EXEC msdb.dbo.sysmail_help_profileaccount_sp; EXEC msdb.dbo.sysmail_help_principalprofile_sp;
Check profile mail
SELECT * FROM msdb.dbo.sysmail_profile
Database Mail sẽ giữ bản sao của e-mail gửi đi và hiển thị chúng trong sysmail_allitems, sysmail_sentitems, sysmail_sentitems, sysmail_faileditems.
Tình trạng của các mail gửi có thể được nhìn thấy trong bảng sysmail_mailitems.
Khi email được gửi thành công, các field sent_status trong bảng sysmail_mailitems sẽ gán = 1, cái này cũng có thể được nhìn thấy trong bảng sysmail_sentitems.
Các email gửi thất bại field sent_status sẽ có giá trị = 2 và những trường hợp chưa gửi sẽ có giá trị = 3. Các bản ghi có thể được kiểm tra trong bảng sysmail_log như hình dưới đây:
SELECT * FROM sysmail_mailitems GO SELECT * FROM sysmail_log GO
Tình trạng có thể được xác nhận sử dụng bảng sysmail_sentitems.
HAVE FUN