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

Như chúng ta biết rằng ngôn ngữ SQL được chỉ định làm tiêu chuẩn ANSI và ISO, đồng thời hiệu suất, khả năng mở rộng và tối ưu hóarất quan trọng đối với các ứng dụng dựa trên cơ sở dữ liệu, đặc biệt là trên Web. Trong phát triển ứng dụng, chúng tôi được yêu cầu xây dựng một chương trình SQL để thực hiện (các) tác vụ nhất định theo định kỳ hoặc hàng ngày. Ví dụ: gửi thông báo qua email có Danh sách nhân viên khôn ngoan của Bộ từ SQL Server tới người dùng doanh nghiệp. Hãy để chúng tôi thảo luận về cách chúng tôi có thể gửi email ở định dạng bảng HTML bằng SQL


Đ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

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 đề

Danh sách nhân viên thông minh của bộ phận
Mã nhân viênTên nhân viênSở

 

 

---- 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)+'

Danh sách nhân viên thông minh của bộ phận
Mã nhân viênTên nhân viênSở
' + EmpName+'' +Department

  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+ '


'

  ---- Thay thẻ <> tại đây

  đặt @body=Thay thế(Replace(@body,'<','<'),'>','>')


  ---- Biến nội dung in

  In @body


---- đầu ra của biến @body

 

 

Danh sách nhân viên thông minh của bộ phận
Mã nhân viênTên nhân viênSở
1Ryan ArjunFinance
2Kimmy WangAdmin
3Lucy GraySales
4Billy DougAdmin
5Gery DeanIT


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

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

Gửi cảnh báo qua email từ SQL Server

Chúng tôi đã tạo phần thân html dạng bảng của mình và đặt các giá trị cần thiết trong các tham số được yêu cầu. Chúng tôi sẽ sử dụng msdb. dbo. thủ tục được lưu trữ sp_send_dbmail để gửi email cho người dùng doanh nghiệp với các tham số được yêu cầu, chẳng hạn 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;


Sau khi thực thi đoạn mã trên, bạn sẽ nhận được thông báo qua email trong hộp thư đến email của mình và nó sẽ giống như –

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?


Mã T-SQL để gửi thông báo qua email trong nháy mắt

----- 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 tiêu đề bảng

 In @HtmlHeader


 ----- 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)+'

Danh sách nhân viên thông minh của bộ phận
Mã nhân viênTên nhân viênSở
' +   EmpName+'' +Department

  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+ '


'

  ---- Thay thẻ <> tại đây

  đặt @body=Thay thế(Replace(@body,'<','<'),'>','>')


  ---- Biến nội dung in

  In @body


  ---- 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;


Sự kết luận


Để kích hoạt email cơ sở dữ liệu của bạn thông qua mã T-SQL, bạn phải có quyền quản trị hệ thống. Mã này rất hữu ích, đặc biệt khi bạn đang thiết lập Thư cơ sở dữ liệu cho nhiều phiên bản và nhiều máy chủ SMTP. Bạn có thể tạo quy trình lưu trữ để gửi nhiều email khác nhau từ nhiều phiên bản SQL, điều này giúp cuộc sống của bạn dễ dàng hơn để tự động hóa các cảnh báo email này

Chúng ta có thể kết nối HTML với SQL Server không?

bạn phải sử dụng bất kỳ ngôn ngữ phía máy chủ nào như php hoặc java(jsp) api để kết nối với SQL bằng HTML . Vì tôi lập trình bằng java (jsp), chúng tôi phải sử dụng Trình kết nối MySQL, để kết nối với cơ sở dữ liệu và dựa trên ngôn ngữ bạn muốn viết mã, bạn có thể tải xuống trình kết nối.

Bạn có thể gửi email từ SQL không?

Máy chủ SQL cung cấp khả năng gửi email thông qua giải pháp Thư cơ sở dữ liệu . Hành động gửi thư thực tế được thực hiện với thủ tục lưu sẵn sp_send_dbmail. Nhưng trước khi bắt đầu gửi email từ SQL Server, bạn cần bật và định cấu hình Thư cơ sở dữ liệu. Bạn có thể làm điều này với GUI SSMS hoặc với T-SQL.

Làm cách nào để tạo mẫu email trong SQL Server?

Các điểm chính của thiết kế giải pháp .
Tạo mẫu HTML bằng CSS. .
Sử dụng cơ sở dữ liệu SMO. .
Xem qua từng DataTable trong DataSet. .
Trong mỗi DataTable, lặp qua từng DataRow và xây dựng một hàng của bảng HTML
Hoàn thành toàn bộ chuỗi HTML và chuyển chuỗi tới tham số @body của sp_send_dbmail và gửi email

Làm cách nào chúng tôi có thể lưu trữ dữ liệu từ HTML trong SQL?

Sử dụng biểu mẫu này, bạn có thể nắm bắt các đơn đặt hàng của khách hàng và tự động lưu chúng vào cơ sở dữ liệu SQL. .
Xác định truy vấn. Chúng tôi sẽ xác định hai truy vấn. .
Tạo lược đồ XML. .
Tạo biểu mẫu. .
Liên kết đến cơ sở dữ liệu. .
Xác định truy vấn SQL. .
Tạo một lược đồ XML. .
Tạo biểu mẫu. .
Liên kết đến cơ sở dữ liệu