2010-07-27 42 views
8

Tôi đã cố gắng sử dụng: sp_send_dbmailGửi email SMTP trong SQL Server 2008 R2 nhanh

Nhưng tôi đã nhận lỗi sau:

Msg 15281, Level 16, State 1, Procedure sp_send_dbmail, Line 0
SQL Server blocked access to procedure 'dbo.sp_send_dbmail' of component 'Database Mail XPs' because this component is turned off as part of the security configuration for this server.
A system administrator can enable the use of 'Database Mail XPs' by using sp_configure. For more information about enabling 'Database Mail XPs', see "Surface Area Configuration" in SQL Server Books Online.

Tôi cũng cố gắng sử dụng mã này để gửi mail SMTP trong SQL Server 2008 R2 EXPRESS: http://www.freevbcode.com/ShowCode.asp?ID=6699

Nhưng tôi nhận được lỗi sau:

Msg 15281, Level 16, State 1, Procedure sp_OACreate, Line 1
SQL Server blocked access to procedure 'sys.sp_OACreate' of component 'Ole Automation Procedures' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ole Automation Procedures' by using sp_configure. For more information about enabling 'Ole Automation Procedures', see "Surface Area Configuration" in SQL Server Books Online.

Tôi đã đi đến "Facets" để kiểm tra các tùy chọn bảo mật ở đó, nhưng không có gì về "Surface Area Configuration"! Là nó bị thiếu bởi vì tôi đang sử dụng phiên bản Express của SQL Server 2008 R2? Hay tôi đang đi sai hướng?

Nếu bạn có bất kỳ mã/đề xuất nào tốt hơn để gửi thư trong SQL Server 2008, vui lòng cho tôi biết. Cảm ơn!

Trả lời

5

Hóa ra là phiên bản SQL Server 2008 R2 EXPRESS không hỗ trợ tính năng thư.

2

Tôi biết câu hỏi là cho nhanh, nhưng đối với các hồ sơ ở đây là phải làm gì cho máy chủ sql thích hợp (SQL Server 2008 R2):

http://www.mssqltips.com/tip.asp?tip=1673

  • Kết nối với máy chủ trong quản lý phòng thu
  • nhấp chuột phải vào máy chủ
  • bấm "khía cạnh"
  • Trong menu thả xuống Facet, chọn " Surface Diện tích Cấu hình "
  • Nhấp đúp vào" DatabaseMailEnabled "hàng để đặt nó là" Đúng".
16

Giai đoạn 1: bấm chuột phải vào máy chủ sql 2008R2 nhanh trong SSMS/chọn khía cạnh/chọn diện tích bề mặt cấu hình/thiết DatabaseMailEnabled -> đúng/nhấp ok.Restart server

Phase2: Bạn chỉ cần cấu hình một số bảng trong msdb.Here là các bảng mà cần phải được cấu hình:

  1. sysmail_account -> tạo một tài khoản mail mặc định
  2. sysmail_profile -> tạo ra một cấu hình mặc định (bạn sẽ cần điều này với sp_send_db mail)
  3. sysmail_profileaccount -> thêm dữ liệu liên quan vào số này dựa trên 2 id hồ sơ
  4. sysmail_server -> tạo máy chủ thư từ tài khoản email bạn sẽ sử dụng để gửi email.Nếu bạn không biết loại máy chủ nhìn vào bên trong sysmail_servertype.

Sau khi cập nhật những bảng refresh msdb và thử gửi email sử dụng sp_send_dbmail Nếu bạn thực hiện tất cả các bước sau bạn sẽ có thể gửi email trong vòng SQL 2008 R2 express sử dụng sp_send_dbmail. Tôi đã làm 5 bài kiểm tra và nó đã diễn ra tốt đẹp.

Talley Ouro Raleigh [email protected]

+2

Làm việc một điều trị. Đẹp nhất! – paulH

+0

Tôi không cần phải khởi động lại sau khi thiết lập DataBaseMailEnabled = true – sreimer

+0

Làm việc cho tôi với SQL Express Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) –

0

hãy thực thi kịch bản sau đây:

sp_configure 'show advanced options', 1 
GO 
RECONFIGURE; 
GO 
sp_configure 'Ole Automation Procedures', 1 
GO 
RECONFIGURE; 
GO 
sp_configure 'show advanced options', 1 
GO 
RECONFIGURE; 
+0

Câu trả lời phải chứa một số thông tin thêm về những gì đang thực sự được thực hiện, những gì là vấn đề, không chỉ là một giải pháp "thực hiện điều này". – lejlot

4

Với một số tín dụng để Tanmaya Thopate từ this site, đây là một cái gì đó mà làm việc trong SQL Express trên Windows Máy chủ 2008:

EXECUTE msdb.dbo.sysmail_add_account_sp 
@account_name = 'MyMail', 
@description = 'Mail account for Database Mail', 
@email_address = '[email protected]', 
@display_name = 'Me', 
@username='[email protected]', 
@password='Password', 
@mailserver_name = 'smtp.gmail.com' 

Thư sẽ được gửi qua gmail bằng tài khoản của tôi [email protected]

Bây giờ tạo ra một hồ sơ cá nhân:

EXECUTE msdb.dbo.sysmail_add_profile_sp 
@profile_name = 'MyMailProfile', 
@description = 'Profile needed for database mail' 

liên kết hồ sơ cá nhân để thư

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp 
@profile_name = 'MyMailProfile', 
@account_name = 'MyMail', 
@sequence_number = 1 


EXECUTE msdb.dbo.sysmail_add_principalprofile_sp 
@profile_name = 'MyMailProfile', 
@principal_name = 'public', 
@is_default = 1 ; 

Đảm bảo SSL được cho phép, nếu không Gmail sẽ phàn nàn.

use msdb 
UPDATE sysmail_server 
SET enable_ssl = 1 

Và gửi một mail với:

declare @body1 varchar(100) 
set @body1 = 'Server :'[email protected]@servername+ ' Test DB Email SSL ' 
EXEC msdb.dbo.sp_send_dbmail @recipients='[email protected]', 
@subject = 'Test', 
@body = @body1, 
@body_format = 'HTML' ; 

Bạn có thể xem các bản ghi từ:

SELECT * FROM msdb.dbo.sysmail_event_log order by log_date 
Các vấn đề liên quan