Posta elettronica DB di SQL Server 2016 non inviata


17

Sono su SQL Server 2016 e mi sto divertendo molto ... la mia DB Mail non si sta inviando e sto finendo i posti per cercare. Ho ricontrollato le autorizzazioni dell'account SQL per l'eseguibile DBmail - ha letto ed eseguito. Ho inserito una regola per la porta 587 in uscita del firewall. Ho provato un altro account e profilo di posta con gli stessi problemi non inviati. Le uniche voci nei registri (registri di posta db) sono l'inizio e la fine del servizio. Non ci sono errori da nessuna parte che posso trovare. Le e-mail sembrano semplicemente inserire la coda di invio e non lasciarla mai. Gli account possono inviare e ricevere e-mail da soli e da un'istanza di SQL Server 2014 su un altro computer.

Ho una coda di elementi con lo stato inviato "non inviato" e ho controllato tutti i luoghi normali con i risultati previsti in tutti loro, a parte una lunga coda di posta non inviata:

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

Ho provato a spegnerlo e riaccenderlo ... quindi ho perso un DMV ecc. Che potrebbe far luce su questa situazione? È un problema noto con SQL Server 2016 che non ho riscontrato nelle mie ricerche? Qualche altro possibile passo per ricevere questa mail?


Il profilo da cui stai inviando l'email è privato?
Kin Shah,

Qualche errore? E i registri? E il mail server? Il server di posta riceve qualche connessione da sql? Alla domanda mancano molte informazioni pertinenti ...
Paolo,

@kin No, è un'e-mail pubblica. Entrambe le e-mail sono Office 365 e gli account inviano e ricevono benissimo da SQL 2014. Aggiunti un paio di dettagli in più alla fine del primo paragrafo che descrivono la situazione.
Dave,

Intendevo il tuo profilo di posta elettronica del database.
Kin Shah,

Sei in grado di eseguire il ping / telnet del server SMTP dalla tua casella di SQL Server 2016? Se sì, puoi provare a eseguire lo script VB dal link mssqltips.com/sqlservertip/1625/… per escludere qualsiasi problema SMTP. Se ricevi la posta di prova, puoi essere sicuro che si tratta di un problema con il server SQL.
SQLPRODDBA,

Risposte:


17

Per un capriccio, quando ho ricontrollato le autorizzazioni, ho fatto doppio clic sull'eseguibile della posta DB effettiva. Il risultato sul computer SQL Server 2014 era una finestra di comando vuota. In SQL Server 2016 facendo clic sull'eseguibile di DB Mail è stato visualizzato questo messaggio:

inserisci qui la descrizione dell'immagine

Non riesco a trovare questo requisito da nessuna parte nella documentazione di SQL Server 2016, ma è chiaramente un requisito. DB Mail funziona perfettamente senza altre modifiche rispetto all'installazione di .NET 3.5.


Ho avuto lo stesso problema. Risolto applicando .net 3.5.
Sir Swears-tanto

questo ha risolto anche il mio problema! mi stava facendo impazzire ma l'installazione di NET3.5 ha risolto il mio problema!
NULL

Ciò ha risolto lo stesso problema per me sulla SP1 CU8 2016
James Anderson,

dove si trova l'eseguibile di posta DB?
JzInqXc9Dg

@Dave OH GESÙ QUESTO È INCREDIBILE. Mi chiedo solo ... usi LogMeIn su questi server? Abbiamo riscontrato situazioni bizzarre in cui LogMeIn disinstalla o elimina elementi e si rifiuta di ammetterlo. La posta del mio database a un certo punto ha funzionato bene su una scatola e sicuramente ha smesso di funzionare qualche volta nel periodo in cui siamo passati a LogMeIn
John Zabroski,

10

Secondo il supporto Microsoft, c'è un bug nell'installazione di SQL Server 2016 che impedisce alla posta del database di funzionare senza .net 3.5

È possibile aggirare il problema creando un file DatabaseMail.exe.config nella stessa cartella in cui esiste DatabaseMail.exe (cartella Binn) scrivere quanto segue nel file e salvare con la codifica utf-8

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

Origine: FIX: Posta elettronica database SQL Server 2016 non funziona su un computer su cui non è installato .NET Framework 3.5


4

Dagli un'occhiata invece. In questo modo devi solo copiare un file invece di installare .net 3.5. È necessario installare prima CU1. Controlla qui per maggiori dettagli.


2
Esiste già un [Aggiornamento cumulativo 2 per SQL Server 2016 | support.microsoft.com/en-us/kb/3182270] con [FIX: Posta elettronica database SQL Server 2016 non funziona su un computer su cui non è installato .NET Framework 3.5 | support.microsoft.com/en-us/kb/3186435] .
Vladislav,

1
Ho trascorso solo 30 minuti a esaminare questo problema prima di finire qui. Grazie per avermi risparmiato molto più tempo.
Paul,

1

Oltre alle cause già menzionate, è anche importante attivare il profilo di posta elettronica a livello di SQL Server Agent come indicato qui :

  • Fare clic con il tasto destro su Agente SQL Server> selezionare Proprietà
  • Seleziona Sistema di avviso nel riquadro a sinistra

  • Segno di spunta> Abilita profilo di posta

  • Verifica sistema di posta: Database Mail
  • Verifica profilo di posta: SQLAlerts
  • Segno di spunta> Includi corpo di e-mail nel messaggio di notifica
  • Clicca OK.
  • Riavvia agente.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.