Megosztás a következőn keresztül:


Adatbázisposta: A levelek várólistára kerülnek, nem kézbesítve

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

Ez a cikk azt ismerteti, hogyan háríthatja el azokat a problémákat, amelyek miatt a Database Mail e-mailjei sikeresen várólistára kerülnek, de az üzenetek nem érkeznek meg.

A probléma diagnosztizálása

A Database Mail külső program naplózza az e-mail tevékenységet az msdb adatbázisban.

  1. Először is, annak ellenőrzéséhez, hogy a Database Mail engedélyezve van-e, használja a rendszer által tárolt eljárás Database Mail XPs (kiszolgálókonfigurációs beállítás) beállításátsp_configure, ahogyan az alábbi példában is látható:

    EXEC sp_configure 'show advanced', 1;  
    RECONFIGURE; 
    EXEC sp_configure; 
    GO
    
  2. Ezután hajtsa végre a következő utasítást az adatbázisban az msdb üzenetsor állapotának ellenőrzéséhez:

    EXEC msdb.dbo.sysmail_help_queue_sp @queue_type = 'Mail';
    

    Az oszlopok részletes ismertetését a sysmail_help_queue_sp (Transact-SQL) című cikkben találja.

  3. Ellenőrizze a sysmail_event_log nézetet, hogy van-e tevékenység. A nézetnek tartalmaznia kell egy bejegyzést, amely azt jelzi, hogy a Database Mail külső program elindult. Ha nincs bejegyzés a sysmail_event_log nézetben, tekintse meg az -ben az sysmail_event_log tünetet.

  4. Ha hibák vannak a nézetben, javítsa ki az adott hibát. Ellenőrizze az sysmail_allitems üzenetek állapotát a nézetben.

Üzenet állapota nem fogadva

A nem küldött állapot azt jelzi, hogy a Külső adatbázis program még nem dolgozza fel az e-mail üzenetet.

Előfordulhat, hogy a Database Mail külső programja lemaradt az üzenetek feldolgozása során; a külső program által az üzeneteket feldolgozó sebesség a hálózati feltételektől, az újrapróbálkozási időtúllépéstől, az üzenetek mennyiségétől és az SMTP-kiszolgáló kapacitásától függ. Ha a probléma továbbra is fennáll, fontolja meg több profil használatát az üzenetek több SMTP-kiszolgáló közötti terjesztéséhez. Tekintse át az SQL Serverről küldött e-mail-terhelést, és ellenőrizze, hogy az elküldött e-mailek érvényesek-e és rendeltetése-e.

Ellenőrizze a sikeresen kézbesített üzenetek legutóbbi módosítási dátumát. Ha az utolsó sikeres kézbesítés egy ideje történt, ellenőrizze a sysmail_event_log nézetet, hogy a külső programot sikeresen elindította-e a Service Broker. Ha az utolsó kísérlet nem indította el a külső programot, ellenőrizze, hogy az Adatbázisposta külső program a megfelelő könyvtárban található-e, és hogy az SQL Server szolgáltatásfiókja rendelkezik-e engedéllyel a végrehajtható program futtatásához. Ellenőrizze a Windows alkalmazás eseménynaplójában a Database Mail szolgáltatással kapcsolatos hibákat.

Megjegyzés:

A régi nem küldött üzenetek törléséhez várjon, amíg a kézbesíthetetlen üzenetek a legrégebbi üzenetek az üzenetsorban, majd a rendszer által tárolt eljárással msdb.dbo.sysmail_delete_mailitems_sp törölje őket.

Az üzenet állapotának újrapróbálkozása

Az újrapróbálkozás állapota azt jelzi, hogy a Database Mail megpróbálta kézbesíteni az üzenetet az SMTP-kiszolgálónak, de nem sikerült. Ezt általában a hálózat megszakadása, az SMTP-kiszolgáló hibája vagy egy helytelenül konfigurált Database Mail-fiók okozza. Az üzenetnek végül sikeresnek vagy sikertelennek kell lennie, és üzenetet kell közzétennie a Windows-alkalmazás eseménynaplójában.

Üzenet állapota elküldve

Az elküldött üzenetek állapota azt jelzi, hogy a Database Mail külső program sikeresen elküldte az e-mailt az SMTP-kiszolgálónak.

Ha az üzenet nem érkezett meg a célhelyre, az SMTP-kiszolgáló elfogadta az üzenetet a Database Mailtől, de nem kézbesítette az üzenetet a végső címzettnek. Ellenőrizze az SMTP-kiszolgáló naplóit, vagy forduljon az SMTP-kiszolgáló rendszergazdájához. Az SMTP-levelezési kiszolgálót egy másik ügyfél, például az Outlook Express használatával is tesztelheti.

Az üzenet küldése sikertelen volt

A sikertelen állapot azt jelzi, hogy a Database Mail külső program nem tudta kézbesíteni az üzenetet az SMTP-kiszolgálónak.

Ebben az esetben a msdb.dbo.sysmail_event_log rendszernézet a külső program részletes adatait tartalmazza. Egy minta lekérdezés esetén, amely a sysmail_faileditems és sysmail_event_log összekapcsolásával részletes hibaüzeneteket kér le, tekintse meg a Az adatbázislevelezéssel küldött e-mailek állapotának ellenőrzése című részt. A sikertelenség leggyakoribb okai a helytelen célcímek, vagy olyan hálózati problémák, amelyek megakadályozzák, hogy a külső program elérjen egy vagy több feladatátvevő fiókot. Az SMTP-kiszolgálón fellépő problémák azt is okozhatják, hogy a kiszolgáló elutasítja a leveleket. Az Adatbázis Mail konfigurációs varázsló segítségével módosítsa a naplózási szintetVerbózusra, és küldjön egy teszt e-mailt a hibapont vizsgálatához.

Következő lépés