SQL Server 2016 DB Mail không gửi


17

Tôi đang sử dụng SQL Server 2016 và có một vụ nổ ... Thư DB của tôi không gửi và tôi đang ở ngoài nơi để tìm. Tôi đã kiểm tra lại các quyền của tài khoản SQL để thực thi DBmail - nó đã đọc và thực thi. Tôi đã nhập một quy tắc cho tường lửa bên ngoài cổng 587. Tôi đã thử một tài khoản thư và hồ sơ khác với cùng các vấn đề chưa được gửi. Các mục duy nhất trong nhật ký (nhật ký thư db) đang bắt đầu và kết thúc dịch vụ. Không có lỗi ở bất cứ đâu mà tôi có thể tìm thấy. Các email dường như chỉ cần nhập hàng gửi và không bao giờ rời khỏi nó. Các tài khoản có thể tự gửi và nhận email và từ phiên bản SQL Server 2014 trên một máy khác.

Tôi đã có một hàng các mặt hàng với trạng thái đã gửi "chưa gửi" và kiểm tra tất cả các vị trí bình thường với kết quả mong đợi trong tất cả chúng, ngoài một hàng dài các thư chưa gửi:

SELECT * FROM msdb..sysmail_event_log order by log_id DESC

SELECT * FROM dbo.sysmail_mailitems

SELECT * FROM dbo.sysmail_sentitems

USE msdb
SELECT sent_status, *
FROM sysmail_allitems

 SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb';

 EXECUTE msdb.dbo.sysmail_help_status_sp

Tôi đã thử tắt và bật lại ... vì vậy tôi đã bỏ lỡ một DMV, vv có thể làm sáng tỏ tình huống này? Đây có phải là sự cố đã biết với SQL Server 2016 mà tôi chưa tìm thấy trong các tìm kiếm của mình không? Bất kỳ bước nào khác có thể nhận được thư này được gửi?


Là hồ sơ mà bạn đang gửi email là riêng tư?
Kin Shah

Có lỗi gì không? Những gì về các bản ghi? Còn máy chủ mail? Máy chủ thư có nhận được bất kỳ kết nối nào từ sql không? Câu hỏi còn thiếu rất nhiều thông tin liên quan ...
Paolo

@kin Không, đó là một email công khai. Cả hai email đều là office 365 và các tài khoản đang gửi và nhận tiền phạt từ SQL 2014. Đã thêm một vài chi tiết vào cuối đoạn 1 mô tả tình huống.
Dave

Tôi có nghĩa là hồ sơ cơ sở dữ liệu thư của bạn.
Kin Shah

Bạn có thể ping / telnet máy chủ SMTP từ hộp SQL Server 2016 của mình không? Nếu có, bạn có thể thử chạy tập lệnh VB từ mssqltips.com/sqlservertip/1625/ Liên kết để loại trừ bất kỳ vấn đề nào của SMTP không. Nếu bạn nhận được thư kiểm tra thì bạn có thể chắc chắn rằng đó là sự cố với máy chủ SQL.
SQLPRODDBA

Câu trả lời:


17

Trong một ý thích bất chợt, khi kiểm tra quyền hai lần, tôi nhấp đúp vào thư thực thi DB thực tế. Kết quả trên máy SQL Server 2014 là một cửa sổ lệnh trống. Trên SQL Server 2016, nhấp vào tệp thực thi DB Mail đã hiển thị thông báo này:

nhập mô tả hình ảnh ở đây

Tôi không thể tìm thấy yêu cầu này ở bất cứ đâu trong tài liệu SQL Server 2016, nhưng rõ ràng đây là một yêu cầu. DB Mail hoạt động hoàn hảo không có thay đổi nào khác ngoài cài đặt .NET 3.5.


Tôi gặp vấn đề tương tự. Đã giải quyết bằng cách áp dụng .net 3.5.
Ngài Swears-a-lot

Điều này cũng khắc phục vấn đề của tôi! nó đã khiến tôi phát điên nhưng cài đặt NET3.5 đã khắc phục sự cố của tôi!
NULL.Dude

Điều này đã khắc phục vấn đề tương tự với tôi vào 2016 SP1 CU8
James Anderson

thư DB thực thi nằm ở đâu?
JzInqXc9Dg

@Dave OH CHÚA GIÊSU NÀY TUYỆT VỜI. Chỉ cần tự hỏi ... bạn có sử dụng LogMeIn trên các máy chủ này không? Chúng tôi đã gặp phải những tình huống kỳ quái khi LogMeIn gỡ cài đặt hoặc xóa nội dung và họ từ chối thừa nhận. Thư cơ sở dữ liệu của tôi tại một thời điểm hoạt động tốt trên một hộp và chắc chắn đã ngừng hoạt động vào khoảng thời gian chúng tôi chuyển đến LogMeIn
John Zabroski

10

Theo Hỗ trợ của Microsoft, có một lỗi trong Thiết lập máy chủ SQL 2016 khiến thư cơ sở dữ liệu không hoạt động mà không có .net 3.5

Có một công việc xung quanh bằng cách tạo tệp DatabaseMail.exe.config trong cùng thư mục nơi DatabaseMail.exe tồn tại (thư mục Binn) ghi phần sau vào tệp và lưu với mã hóa utf-8

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true"> 
<supportedRuntime version="v4.0"/>     
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>

Nguồn: FIX: SQL Server 2016 Database Mail không hoạt động trên máy tính chưa cài đặt .NET Framework 3.5


4

Thay vào đó, hãy nhìn vào đây. Bằng cách này, bạn chỉ cần sao chép tệp thay vì cài đặt .net 3.5. Cần cài đặt CU1 trước. Kiểm tra ở đây để biết thêm chi tiết.


2
Đã có [Cập nhật tích lũy 2 cho SQL Server 2016 | support.microsoft.com/en-us/kb/3182270] với [FIX: SQL Server 2016 Database Mail không hoạt động trên máy tính không cài đặt .NET Framework 3.5 | support.microsoft.com/en-us/kb/3186435] .
Vladislav

1
Chỉ dành 30 phút để xem xét vấn đề này trước khi kết thúc ở đây. Cảm ơn bạn đã tiết kiệm cho tôi nhiều thời gian hơn.
Paul

1

Bên cạnh các nguyên nhân đã được đề cập, điều quan trọng là phải kích hoạt hồ sơ e-mail ở cấp Đại lý SQL Server như được chỉ ra ở đây :

  • Nhấp chuột phải vào Đại lý máy chủ SQL> chọn Thuộc tính
  • Chọn Hệ thống cảnh báo trong khung bên trái

  • Dấu kiểm> Kích hoạt hồ sơ thư

  • Xác minh hệ thống thư: Cơ sở dữ liệu thư
  • Xác minh hồ sơ thư: SQLAlerts
  • Dấu kiểm> Bao gồm phần thân của e-mail trong tin nhắn thông báo
  • Nhấn OK.
  • Đại lý khởi động lại.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.