09/10/2018, 11:18

[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:

  1. Create Profile and Account
  2. Configure Email
  3. Send Email

Bước 1: Create profile and Account

cấu hình email sqlserver

Tiếp theo

cấu hình email sqlserver

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.

gởi email sqlserver

Ở 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

gởi email trong sql

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.

cấu hình email database

cấu hình email và gởi email sqlserver

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ả

config email database

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.

hoàn thành gởi email

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_allitemssysmail_sentitems, sysmail_sentitemssysmail_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 

cấu hình và gởi email sqlserver

Tình trạng có thể được xác nhận sử dụng bảng sysmail_sentitems.

gởi email sql

HAVE FUN heart

Tags: send emailemailgởi email sqlservercấu hình email
0