จดหมาย DB SQL Server 2016 ไม่ได้ส่ง


17

ฉันใช้ SQL Server 2016 และมีการระเบิด ... จดหมาย DB ของฉันไม่ได้ส่งและฉันกำลังจะหมด ฉันตรวจสอบสิทธิ์บัญชี SQL สองครั้งเพื่อให้สามารถเรียกทำงานได้ DBmail - มันได้อ่านและดำเนินการแล้ว ฉันป้อนกฎสำหรับพอร์ตขาออกของไฟร์วอลล์ 587 ฉันลองใช้บัญชีอีเมลและโปรไฟล์อื่นด้วยปัญหาที่ยังไม่ได้ส่ง รายการเฉพาะในบันทึก (บันทึกเมล db) กำลังเริ่มต้นและสิ้นสุดการให้บริการ ไม่มีข้อผิดพลาดทุกที่ที่ฉันสามารถหาได้ อีเมลดูเหมือนจะป้อนคิวการส่งและจะไม่ทิ้ง บัญชีสามารถส่งและรับอีเมลด้วยตนเองและจากอินสแตนซ์ของ SQL Server 2014 บนเครื่องอื่น

ฉันได้รับรายการที่มีสถานะ "ไม่ส่ง" และตรวจสอบสถานที่ปกติทั้งหมดพร้อมผลลัพธ์ที่คาดหวังในรายการทั้งหมดนอกเหนือจากจดหมายที่ไม่ได้ส่งคิวที่ยาว:

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

ฉันได้ลองปิดและเปิดใหม่อีกครั้ง ... ดังนั้นฉันจึงพลาด DMV และอื่น ๆ ที่สามารถอธิบายสถานการณ์นี้ได้หรือไม่ นี่เป็นปัญหาที่ทราบกันดีกับ SQL Server 2016 ที่ฉันไม่ได้ทำการค้นหาใช่ไหม มีขั้นตอนอื่น ๆ ที่เป็นไปได้เพื่อรับจดหมายนี้


โปรไฟล์จากที่คุณส่งอีเมลเป็นส่วนตัวหรือไม่
Kin Shah

ข้อผิดพลาดใด ๆ สิ่งที่เกี่ยวกับบันทึกหรือไม่ และเมลเซิร์ฟเวอร์หรือไม่ เมลเซิร์ฟเวอร์ได้รับการเชื่อมต่อจาก sql หรือไม่ คำถามนี้ไม่มีข้อมูลที่เกี่ยวข้องมากมาย ...
เปาโล

@kin ไม่เป็นอีเมลสาธารณะ อีเมลทั้งสองนี้เป็น office 365 และบัญชีกำลังส่งและรับค่าปรับจาก SQL 2014 เพิ่มรายละเอียดเพิ่มเติมอีกสองสามข้อในตอนท้ายของวรรค 1 ที่อธิบายสถานการณ์
เดฟ

ฉันหมายถึงโปรไฟล์อีเมลฐานข้อมูลของคุณ
Kin Shah

คุณสามารถ ping / telnet SMTP เซิร์ฟเวอร์จากกล่อง SQL Server 2016 ของคุณหรือไม่ ถ้าใช่คุณสามารถลองเรียกใช้สคริปต์ VB จากลิงก์mssqltips.com/sqlservertip/1625/…เพื่อแยกแยะปัญหา SMTP ใด ๆ หากคุณได้รับเมลทดสอบคุณสามารถมั่นใจได้ว่าเป็นปัญหากับเซิร์ฟเวอร์ SQL
SQLPRODDBA

คำตอบ:


17

ในความตั้งใจเมื่อตรวจสอบสิทธิ์ฉันดับเบิลคลิกที่ปฏิบัติการจดหมาย DB จริง ผลลัพธ์บนเครื่อง SQL Server 2014 เป็นหน้าต่างคำสั่งว่าง บน SQL Server 2016 คลิกการเรียกใช้จดหมาย DB แสดงข้อความนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันไม่พบข้อกำหนดนี้ที่ใดก็ได้ในเอกสารคู่มือ SQL Server 2016 แต่เป็นข้อกำหนดที่ชัดเจน DB Mail ทำงานได้อย่างสมบูรณ์แบบโดยไม่มีการเปลี่ยนแปลงใด ๆ นอกจากการติดตั้ง. NET 3.5


ฉันมีปัญหาเดียวกัน แก้ไขโดยใช้. net 3.5
Sir Swears-a-lot

นี้แก้ไขปัญหาของฉันด้วย! มันทำให้ฉันเสียสติ แต่การติดตั้ง NET3.5 แก้ไขปัญหาของฉัน!
NULL.Dude

สิ่งนี้แก้ไขปัญหาเดียวกันสำหรับฉันใน 2016 SP1 CU8
James Anderson

ที่อยู่อีเมลฐานข้อมูล DB อยู่ที่ไหน?
JzInqXc9Dg

@ เดฟโอ้พระเยซูนี่เป็นสิ่งที่น่าอัศจรรย์ แค่สงสัยว่า ... คุณใช้ LogMeIn บนเซิร์ฟเวอร์เหล่านี้หรือไม่ เราพบสถานการณ์ที่แปลกประหลาดที่ LogMeIn ถอนการติดตั้งหรือลบข้อมูลและพวกเขาปฏิเสธที่จะยอมรับ ฐานข้อมูลของฉันที่จุดหนึ่งทำงานได้ดีในหนึ่งกล่องและหยุดทำงานบางครั้งในช่วงเวลาที่เราย้ายไปที่ LogMeIn
John Zabroski

10

ตามการสนับสนุนของ Microsoft มีข้อผิดพลาดในการติดตั้งเซิร์ฟเวอร์ SQL 2016 ที่ทำให้จดหมายฐานข้อมูลไม่สามารถทำงานได้หากไม่มี. net 3.5

มีวิธีแก้ไขโดยการสร้างไฟล์DatabaseMail.exe.configในโฟลเดอร์เดียวกันที่มีDatabaseMail.exeอยู่ (โฟลเดอร์ Binn) เขียนสิ่งต่อไปนี้ลงในไฟล์และบันทึกด้วยการเข้ารหัส utf-8

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

ที่มา: การ แก้ไข: จดหมายฐานข้อมูล SQL Server 2016 ไม่ทำงานบนคอมพิวเตอร์ที่ไม่มี. NET Framework 3.5 ติดตั้ง


4

ดูที่สิ่งนี้แทน วิธีนี้คุณเพียงแค่คัดลอกไฟล์แทนที่จะติดตั้ง. net 3.5 จำเป็นต้องติดตั้ง CU1 ก่อน ตรวจสอบที่นี่สำหรับรายละเอียดเพิ่มเติม


2
มี [Cumulative Update 2 สำหรับ SQL Server 2016 | support.microsoft.com/en-us/kb/3182270]ด้วย [การแก้ไข: จดหมายฐานข้อมูล SQL Server 2016 ไม่ทำงานบนคอมพิวเตอร์ที่ไม่มี. NET Framework 3.5 ติดตั้ง | support.microsoft.com/en-us/kb/3186435]
Vladislav

1
ใช้เวลาเพียง 30 นาทีในการดูปัญหานี้ก่อนที่จะสิ้นสุดที่นี่ ขอบคุณที่ช่วยประหยัดเวลาให้ฉันได้มากขึ้น
พอล

1

นอกจากสาเหตุที่กล่าวถึงแล้วสิ่งสำคัญคือการเปิดใช้งานโปรไฟล์อีเมลในระดับตัวแทนเซิร์ฟเวอร์ SQL ดังที่ระบุไว้ที่นี่ :

  • คลิกขวาตัวแทนเซิร์ฟเวอร์ SQL> เลือกคุณสมบัติ
  • เลือกระบบแจ้งเตือนในบานหน้าต่างด้านซ้าย

  • เครื่องหมายถูก> เปิดใช้งานโปรไฟล์อีเมล

  • ตรวจสอบระบบจดหมาย: จดหมายฐานข้อมูล
  • ตรวจสอบโปรไฟล์เมล: SQLAlerts
  • เครื่องหมายถูก> รวมเนื้อหาของอีเมลในข้อความแจ้งเตือน
  • คลิกตกลง
  • รีสตาร์ทตัวแทน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.