Chúng tôi có thể gửi email ở định dạng html từ máy chủ sql không, bạn sẽ làm điều đó như thế nào?
Gửi một lượng lớn email có thể gây căng thẳng cho máy chủ chuyển tiếp thư. Tuy nhiên, nhiều người sử dụng SQL Server sẽ cần làm điều đó cho những thứ như bản tin, danh sách gửi thư, v.v. Satnam Singh mang đến cho chúng ta một cách để phân bổ tải bằng cách gửi các bản tin theo nhiều đợt thay vì một quy trình lớn Show Điều quan trọng đối với chúng tôi trước khi gửi email từ SQL Server, chúng tôi nên có những điều sau- 1) Email Hồ sơ 2) Tài khoản email được kích hoạt và ủy quyền email account 3) Kích hoạt và cấu hình Database Mailin SQL Server Để biết tất cả các bước trên và cấu hình của chúng, bạn có thể truy cập Kích hoạt và định cấu hình Thư cơ sở dữ liệu trong SQL Server bằng T-SQL Để hiểu chức năng này, chúng ta có thể sử dụng cấu trúc bảng Nhân viên sau đây để tạo danh sách html dạng bảng như bên dưới. ---- Tạo bảng dữ liệu Nhân viên TẠO BẢNG Nhân viên ( EmpId INT , EmpName VARCHAR (25), Sở VARCHAR (25) ) ---- Chèn dữ liệu vào nhân viên CHÈN VÀO Nhân viên (EmpId,EmpName,Department) GIÁ TRỊ (1, 'Ryan Arjun' , 'Finance'), (2, 'Kimmy Wang' , 'Quản trị viên'), (3, 'Lucy Gray' , 'Doanh số'), (4, 'Billy Doug' , 'Quản trị viên'), (5, 'Gery Dean' , 'IT') ---- Kéo dữ liệu từ Nhân viên CHỌN EmpId,EmpName,Bộ phận TỪ DBO. nhân viên empId EmpName Phòng 1 Ryan Arjun Tài chính 2 Kimmy Vương Quản trị viên 3 Lucy Xám Việc bán hàng 4 Billy Doug Quản trị viên 5 Trưởng khoa Gery NÓ Như chúng ta biết rằng SQL Server cung cấp msdb. dbo. thủ tục được lưu trữ sp_send_dbmail để gửi email cho người dùng doanh nghiệp và thủ tục được lưu trữ này yêu cầu một số tham số như- ---- gọi SP_SEND_DBMAIL để gửi thông báo EXEC msdb. dbo. sp_send_dbmail ---- Trình tạo hồ sơ email SQL @profile_name = @inpEmailProfiler, ---- Ai sẽ nhận được email @recipients = @inpToEmail, ----Loại định dạng đơn giản/html @body_format=@inpBodyFormat, ---- Thiết kế dạng bảng dữ liệu dạng html @body = @body, ---- Dòng tiêu đề của email @subject = @inpSubjectLine; Cách tạo tiêu đề bảng HTML Vì vậy, trước khi tạo định dạng bảng html, chúng ta nên khai báo các biến này và gán giá trị trong mã T-SQL của chúng ta như dưới đây ----- Khai báo biến cục bộ ----- Biến tiêu đề bảng khai báo @HtmlHeader nvarchar(500), ----- Biến thân bảng @body nvarchar(max), ---- Trình tạo hồ sơ email SQL @inpEmailProfiler VARCHAR(50) ='DBANotifications', ---- Ai sẽ nhận được email @inpToEmail VARCHAR(50)='[email protected]', ----Loại định dạng đơn giản/html @inpBodyFormat VARCHAR(5) ='HTML', ---- Dòng tiêu đề của email @inpSubjectLine NVARCHAR(200)='Department Wise Employee List'; ----- Tiêu đề dạng bảng dựa trên HTML set @HtmlHeader=' ---- in biến tiêu đề bảng In @HtmlHeader ---- đầu ra của biến tiêu đề ---- sao chép và dán đầu ra ở trên vào MS Excel và xem nó trông như thế nào trong nội dung email Bộ phận Danh sách nhân viên khôn ngoan Mã Emp Tên nhân viên Phòng Cách tạo nội dung bảng HTML Chúng tôi đã tạo tiêu đề bảng của mình và cần điền các thành phần thân bảng sẽ được lấy từ bảng dữ liệu của chúng tôi. Để lấy dữ liệu từ cơ sở dữ liệu, chúng tôi đang sử dụng chức năng CAST của SQL Server như bên dưới. ----- Tạo nội dung Bảng HTML từ bảng cơ sở dữ liệu ---- và đặt giá trị trong biến @body cục bộ SET @body = CAST( ( CHỌN TD =CHUYỂN ĐỔI(VARCHAR(4),EmpId)+' TỪ DBO. Nhân viên CHO XML PATH('TR'), TYPE) AS VARCHAR(MAX)); ---- nối biến nội dung và tiêu đề nội dung html tại đây set @body= @HtmlHeader+@body+ ' |