Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
In dit artikel wordt beschreven hoe u een probleem oplost waarbij e-mailberichten uit Database Mail in de wachtrij worden geplaatst, maar de berichten niet worden bezorgd.
Het probleem vaststellen
Het externe programma Database Mail registreert e-mailactiviteit in de msdb database.
Als u eerst wilt controleren of Database Mail is ingeschakeld, gebruikt u de Database Mail XPs (serverconfiguratieoptie) van de
sp_configuresysteem opgeslagen procedure, zoals in het volgende voorbeeld:EXEC sp_configure 'show advanced', 1; RECONFIGURE; EXEC sp_configure; GOVoer vervolgens de volgende instructie uit in de
msdbdatabase om de status van de e-mailwachtrij te controleren:EXEC msdb.dbo.sysmail_help_queue_sp @queue_type = 'Mail';Zie sysmail_help_queue_sp (Transact-SQL) voor een gedetailleerde uitleg van de kolommen.
Controleer de
sysmail_event_logweergave op activiteit. De weergave moet een vermelding bevatten waarin staat dat het externe programma Database Mail is gestart. Als er geen vermelding is in desysmail_event_logweergave, raadpleeg dan het symptoom "Berichten in Wachtrij, Geen Vermeldingen" insysmail_event_log.Als er fouten in de
sysmail_event_logweergave zijn, kunt u de specifieke fout oplossen. Controleer desysmail_allitemsweergave op de status van de berichten.
Berichtstatus: niet verzonden
Een status van niet-verzonden bericht geeft aan dat het externe programma voor database-e-mail het e-mailbericht nog niet heeft verwerkt.
Het externe programma Database Mail is mogelijk achtergelopen bij het verwerken van berichten; de snelheid waarmee het externe programma berichten verwerkt, is afhankelijk van de netwerkomstandigheden, de time-out voor opnieuw proberen, het volume van berichten en de capaciteit van de SMTP-server. Als het probleem zich blijft voordoen, kunt u overwegen om meer dan één profiel te gebruiken om berichten over meer dan één SMTP-server te distribueren. Controleer de verzonden e-mailbelasting van de SQL Server om te controleren of de verzonden e-mailberichten geldig en bedoeld zijn.
Controleer de meest recente wijzigingsdatum van berichten die succesvol zijn bezorgd. Als de laatste geslaagde levering enige tijd geleden heeft plaatsgevonden, controleert u de sysmail_event_log weergave om te controleren of het externe programma is gestart door Service Broker. Als de laatste poging het externe programma niet heeft gestart, controleert u of het externe database-mailprogramma zich in de juiste map bevindt en of het serviceaccount voor SQL Server gemachtigd is om het uitvoerbare bestand uit te voeren. Controleer het gebeurtenislogboek van de Windows-toepassing op fouten met betrekking tot Database Mail.
Opmerking
Als u oude niet-verzonden berichten wilt verwijderen, wacht u totdat de onbestelbare berichten de oudste berichten in de wachtrij zijn en gebruikt u vervolgens de door het systeem opgeslagen procedure msdb.dbo.sysmail_delete_mailitems_sp om ze te verwijderen.
Status van het bericht: opnieuw proberen
Een status van opnieuw proberen geeft aan dat Database Mail het bericht probeerde te bezorgen op de SMTP-server, maar niet. Dit wordt meestal veroorzaakt door een netwerkonderbreking, een fout van de SMTP-server of een onjuist geconfigureerd Database Mail-account. Het bericht moet uiteindelijk slagen of mislukken en een bericht posten in het gebeurtenislogboek van de Windows-toepassing.
Verzonden berichtstatus
Een status van verzonden geeft aan dat het externe programma Database Mail het e-mailbericht heeft bezorgd op de SMTP-server.
Als het bericht niet op het doel aankomt, heeft de SMTP-server het bericht van Database Mail geaccepteerd, maar het bericht niet bezorgd bij de uiteindelijke geadresseerde. Controleer de logboeken van de SMTP-server of neem contact op met de beheerder van de SMTP-server. U kunt de SMTP-e-mailserver ook testen met behulp van een andere client, zoals Outlook Express.
Berichtstatus: mislukt
De status Mislukt geeft aan dat het externe programma Database Mail het bericht niet kan bezorgen op de SMTP-server.
In dit geval bevat de msdb.dbo.sysmail_event_log systeemweergave de gedetailleerde informatie van het externe programma. Zie sysmail_faileditems voor een voorbeeldquery die deelneemt aan gedetailleerde foutberichten en sysmail_event_log om gedetailleerde foutberichten op te halen. De meest voorkomende oorzaken voor fouten zijn een onjuist doeladres of netwerkproblemen waardoor het externe programma een of meer failoveraccounts niet kan bereiken. Problemen op de SMTP-server kunnen er ook voor zorgen dat die server e-mail weigert. Wijzig met behulp van de Database Mail Configuratiewizard het logniveau in Uitgebreid en verzend een test-e-mail om het probleem te onderzoeken.