Tài liệu Sử dụng và quản lý Database Mail - Pdf 10

Sử dụng và quản lý Database Mail

SQL Server 2005 có một hệ thống mail nhỏ được gọi là Database Mail.
Database Mail là một tính năng được cải thiện trong SQL Mail so với các
phiên bản trước đó của SQL Server. Với tính năng này bạn có thể thiết lập
nhiều tài khoản cũng như hồ sơ để hỗ trợ những vấn đề về email. Database
Mail là gì?
Database Mail là một hệ thống hàng đợi của mail. Các email message được
lưu trong một hàng đợi bên trong cơ sở dữ liệu để được xử lý. Khi một email message được đưa
vào trong hàng đợi, một quá trình mở sẽ được kích hoạt để gửi email messages trong hàng đợi
đến mail server thích hợp. Khi email đã được gửi thì một email message có trạng thái của phân
phối sẽ được gửi trở lại cho SQL Server.

Kích hoạt Database Mail

Database Mail không ở trạng thái có sẵn khi cài đặt. Từ mô hình bảo mật của SQL Server có một
số thứ bị tắt mặc định, bạn cần phải kích hoạt Database Mail nếu muốn sử dụng nó. Bạn có thể
sử dụng công cụ cấu hình Surface Area Configuration hoặc T-SQL Server dưới đây để kích hoạt
Database Mail:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE
GO
Thiết lập tài khoản

Một tài khoản Database Mail cho biết SQL Server 2005 phải truyền thông như thế nào với máy
chủ SMTP. Tài khoản chỉ rõ email được định dạng và được gửi như thế nào. Một tài khoản sẽ

@display_name = 'ProdServer01 DBA Mail',
@replyto_address = '
@domainname.com
',
@mailserver_name = 'mailserver.domainname.com';
Tài khoản này có tên là “Database Administration Account”, và có địa chỉ email là
. Một trong những ưu điểm
của việc sử dụng Database Mail là địa chỉ email này không nhất thiết phải là một tài khoản email
hợp lệ trong hệ thống mail. Thêm vào đó, bạn lại có thể kết hợp một địa chỉ “reply to” với một
tài khoản mail cơ sở dữ liệu của bạn. trong ví dụ của tôi ở trên, tôi đã định nghĩa
là @replyto_address. Vì vậy
khi một ai đó nhận đươc một email từ bất kỳ các quá trình thông báo email tự động nào của tôi
họ sẽ có thể trả lời nó và email có thể được gửi trực tiếp đến tôi.

Với Database Mail, bạn có thể thiết lập nhiều tài khoản email nếu muốn. Trong phần dưới đây
tôi sẽ giới thiệu một số lý do tại sao bạn lại có thể thiết lập được nhiều tài kho
ản Database Mail
như vậy.

Thiết lập hồ sơ và liên kết nó với các tài khoản

Trước khi gửi một Database Mail đến máy chủ SMTP đã được phân biệt trong một tài khoản,
bạn cần phải kết hợp tài khoản với một hồ sơ (profile) và cho phép truy cập đến profile. Database
Mail profile được sử dụng để cải thiện bảo mật mail. Có hai loại profile: public và private. Public

Gửi Database Mail

SQL Server cung cấp SP “sp_send_dbmail” để gửi mail. Cú pháp dưới đây được sử dụng để gọi
SP này:
sp_send_dbmail [ [ @profile_name = ] 'profile_name' ]
[ , [ @recipients = ] 'recipients [ ; n ]' ]
[ , [ @copy_recipients = ] 'copy_recipient [ ; n ]' ]
[ , [ @blind_copy_recipients = ] 'blind_copy_recipient [ ; n ]' ]
[ , [ @subject = ] 'subject' ]
[ , [ @body = ] 'body' ]
[ , [ @body_format = ] 'body_format' ]
[ , [ @importance = ] 'importance' ]
[ , [ @sensitivity = ] 'sensitivity' ]
[ , [ @file_attachments = ] 'attachment [ ; n ]' ]
[ , [ @query = ] 'query' ]
[ , [ @execute_query_database = ] 'execute_query_database' ]
[ , [ @attach_query_result_as_file = ] attach_query_result_as_file ]
[ , [ @query_attachment_filename = ] query_attachment_filename ]
[ , [ @query_result_header = ] query_result_header ]
[ , [ @query_result_width = ] query_result_width ]
[ , [ @query_result_separator = ] 'query_result_separator' ]
[ , [ @exclude_query_output = ] exclude_query_output ]
[ , [ @append_query_error = ] append_query_error ]
[ , [ @query_no_truncate = ] query_no_truncate ]
[ , [ @mailitem_id = ] mailitem_id ] [ OUTPUT ]
Như những gì bạn nhìn thấy, SP này hỗ trợ một số các tham số khác nhau. Thông tin về mỗi
tham số này bạn có thể tham khảo trong các sách online.

Dưới đây là một ví dụ nói về tôi sẽ sử dụng private profile đã được tạo ở trên để gửi một email
message đơn giản như thế nào không quan tâm đến quá trình đánh chỉ số lại cơ sở dữ liệu tự
@subject = 'Reindex Database' ;
Database Mail xử lý hết một hàng đợi khi chạy lệnh trên thì tôi sẽ có một thông báo được gửi
phản hồi nói rằng mail được đưa vào hàng đợi “Mail queued”. Khi bạn thực thi sp_send_dbmail
SP thì mail không được gửi đi ngay lập tức mà thay vì đó nó được lưu trong hàng đợi mail bên
trong cơ sở dữ liệu msdb. SP này kích hoạt một quá trình mail mở rộng (DatabaseMail90.exe) để
chạy. Thực thi này đọc mail trong hàng đợi và gửi nó đến mail server thích hợp.

Các trường hợp khác nhau trong sử dụng tài khoản và hồ sơ

Có một số cách khác nhau trong việc sử dụng những ưu điểm của đa tài khoản và profile được
Database Mail cho phép bạn thực hiện với chúng.

Một trong những ưu điểm quan sát thấy của tính năng đa tài khoản đó là cấu hình profile
Database Mail của bạn có thể cho phép khả năng chuyển đổi dự phòng khi một trong những máy
chủ SMTP gặp các vấn đề trục trặ
c. Khi bổ sung vào các tài khoản cho một profile Database
Mail bạn có thể cung cấp cho chúng một chuỗi số sequence_number. Khi gửi một email message
mới, Database Mail cố gắng gửi nó bằng cách sử dụng số chuỗi thấp nhất trước. Nếu quá trình
gửi đó bị hỏng thì Database Mail sẽ sử dụng chuỗi số cao hơn tiếp theo. Database Mail sẽ liên
tục thực hiện công việc này cho đến khi mail được gửi thành công hoặc tất cả các tài khoản đã
đều được thử.

Một tùy chọn khác trong việc sử dụng này là hỗ trợ cho mail message phân phát đến các địa chỉ
email khác nhau. Nếu bạn có nhiều ứng dụng cần phải gửi email, mỗi ứng dụng có một địa chỉ
email riêng của nó. Việc làm này sẽ giúp người nhận email tự đông phân biệt được quá trình đã

sysmail_unsentitems – Cửa sổ này gồm có một bản ghi cho mỗi email hiện đang có trong hàng
đợi để được gửi hoặc trong quá trình đang gửi.

Duy trì các thông báo trong MSDB Database

Tất cả các email message được lưu trong cơ sở dữ liệu msdb, bạn phải xem xét xem quản lý các
thông tin này như thế nào. Phụ thuộc vào các chính sách ghi nhớ email, bạn cần thiết lập một
thói quen để làm sạch có chu kỳ đối với các email message không cần thiết nữa. SQL Server
2005 cung cấp hai thủ tục lưu khác nhau để gỡ các bản ghi mail từ cơ sở dữ liệu msdb.

sysmail_delete_mailitems_sp – SP này xóa thường xuyên các email message có trong msdb
trong bảng Database Mail.

sysmail_delete_log_sp – SP này xóa các thông báo bản ghi Database Mail.

Bạn có thể xem sách online để có thêm thông tin chi tiết về SP.

T-SQL Server dưới đây sẽ xóa mail đã được gửi cách đấy một tháng:
DECLARE @delete_date datetime
SET @delete_date = dateadd(MM,-1,getdate())
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_before=@delete_date

Kết luận

Database Mail SQL Server 2005 là một sự cải thiện lớn trong SQL Mail so với các phiên bản
trước đây của SQL Server. Database Mail cung cấp một hệ thống mail với rất nhiều tính năng để
bảo vệ và quản lý tốt hơn các mail đang gửi bằng sử dụng T-SQL. Với Database Mail trong SQL
Server 2005, bạn không cần phải xây dựng một lời giải cho một giải pháp sử dụng CDOSYS để
gửi email. Nếu bạn đang tìm cách để hỗ trợ email từ T-SQL, hãy xem xét đến những tính năng
của Database Mail.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status