Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Managed Instance
I den här artikeln beskrivs hur du felsöker ett problem där e-postmeddelanden från Database Mail har placerats i kö, men meddelandena inte levereras.
Diagnostisera problemet
Det externa programmet Database Mail loggar e-postaktiviteten msdb i databasen.
Börja med att bekräfta att Database Mail är aktiverat genom att använda Database Mail XPs (serverkonfigurationsalternativet) för den
sp_configuresystemlagrade proceduren, som i följande exempel:EXEC sp_configure 'show advanced', 1; RECONFIGURE; EXEC sp_configure; GOKör sedan följande -instruktion i
msdbdatabasen för att kontrollera e-postköns status:EXEC msdb.dbo.sysmail_help_queue_sp @queue_type = 'Mail';En detaljerad förklaring av kolumnerna finns i sysmail_help_queue_sp (Transact-SQL).
Kontrollera om det finns aktivitet i
sysmail_event_logvyn. Vyn bör innehålla en post som anger att det externa programmet Database Mail har startats. Om det inte finns någon post isysmail_event_logvyn kan du se symptomet Meddelanden i kö, Inga poster isysmail_event_log.Om det finns fel i
sysmail_event_log-vyn, felsök det specifika felet. Kontrollera vynsysmail_allitemsför statusen för meddelandena.
Meddelandestatus: oskickat
Statusen unsent anger att det externa programmet för databaspost ännu inte har bearbetat e-postmeddelandet.
Det externa programmet Database Mail kan ha hamnat på efterkälken när det gäller att bearbeta meddelanden. den hastighet med vilken det externa programmet bearbetar meddelanden beror på nätverksförhållanden, tidsgränsen för återförsök, mängden meddelanden och SMTP-serverns kapacitet. Om problemet kvarstår kan du överväga att använda mer än en profil för att distribuera meddelanden mellan mer än en SMTP-server. Granska den skickade e-postbelastningen från SQL Server för att kontrollera att de skickade e-postmeddelandena är giltiga och avsedda.
Kontrollera det senaste ändringsdatumet för meddelanden som har levererats. Om den senaste lyckade leveransen inträffade för en tid sedan, verifiera i sysmail_event_log vyn att det externa programmet startades av Service Broker. Om det senaste försöket inte startade det externa programmet kontrollerar du att databasens externa program för e-post finns i rätt katalog och att tjänstkontot för SQL Server har behörighet att köra den körbara filen. Kontrollera eventloggen för Windows-program avseende fel relaterade till Database Mail.
Anmärkning
Om du vill ta bort gamla meddelanden som inte har tagits bort väntar du tills de meddelanden som inte kan levereras är de äldsta meddelandena i kön och använder sedan den system lagrade proceduren msdb.dbo.sysmail_delete_mailitems_sp för att ta bort dem.
Återförsök av meddelandestatus
Statusen för återförsök anger att Database Mail försökte leverera meddelandet till SMTP-servern, men det gick inte. Detta orsakas vanligtvis av ett nätverksavbrott, ett fel på SMTP-servern eller ett felaktigt konfigurerat Database Mail-konto. Meddelandet bör så småningom lyckas eller misslyckas och skicka ett meddelande till händelseloggen för Windows-programmet.
Meddelandestatus skickad
Statusen skickad anger att det externa programmet Database Mail har levererat e-postmeddelandet till SMTP-servern.
Om meddelandet inte kom till målet accepterade SMTP-servern meddelandet från Database Mail, men gav inte meddelandet till slutmottagaren. Kontrollera loggarna på SMTP-servern eller kontakta administratören för SMTP-servern. Du kan också testa SMTP-e-postservern med hjälp av en annan klient, till exempel Outlook Express.
Sändning av meddelande misslyckades
Statusen misslyckades anger att det externa programmet Database Mail inte kunde leverera meddelandet till SMTP-servern.
I det här fallet msdb.dbo.sysmail_event_log innehåller systemvyn detaljerad information från det externa programmet. En exempelfråga som ansluter sysmail_faileditems till och sysmail_event_log för att hämta detaljerade felmeddelanden finns i Kontrollera status för e-postmeddelanden som skickas med Database Mail. De vanligaste orsakerna till fel är en felaktig måladress eller nätverksproblem som hindrar det externa programmet från att nå ett eller flera redundanskonton. Problem på SMTP-servern kan också leda till att servern avvisar e-post. Med hjälp av konfigurationsguiden för databasutskick ändrar du loggningsnivån till Utförlig och skickar ett testmeddelande för att undersöka felpunkten.