sql >> Databáze >  >> RDS >> Sqlserver

Oprava „název profilu není platný“ při odesílání pošty ze serveru SQL

Pokud se pokusíte odeslat poštu ze serveru SQL, ale zobrazí se vám „název profilu není platný“, je to pravděpodobně proto, že jste nezadali platný profil pro @profile_name argument.

Příklad

Řekněme například, že používáte následující kód T-SQL k odeslání e-mailu s upozorněním správci, kdykoli selže úloha SQL Server Agent:

EXEC msdb.dbo.sp_send_dbmail  
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'Your favorite SQL Server Agent job just failed',  
    @subject = 'SQL Server Agent Job: FAILED';

Zobrazí se však následující chyba:

Msg 14607, Level 16, State 1, Procedure msdb.dbo.sysmail_verify_profile_sp, Line 42
profile name is not valid

Tato chyba nám konkrétně říká, že „název profilu není platný“.

Chcete-li odesílat e-maily pomocí Database Mail, musíte místo uživatelského účtu zadat přímo profil. V tomto případě jsem zadal @profile_name z DB Admin Profile , ale takový profil ve skutečnosti neexistuje.

Než budu moci odeslat poštu, musím přidat uživatele do msdb databáze, vytvořte databázový poštovní účet, poté vytvořte profil a přidejte databázový poštovní účet do tohoto profilu. Poté potřebuji přidat uživatele do profilu.

Vše bude vypadat nějak takto:

-- Switch to the msdb database
USE msdb;

-- Create a user on the msdb database
CREATE USER Marge FOR LOGIN Marge;

-- Create a Database Mail account  
EXECUTE msdb.dbo.sysmail_add_account_sp  
    @account_name = 'DB Admin',  
    @description = 'Mail account for admin emails.',  
    @email_address = '[email protected]',  
    @replyto_address = '[email protected]',  
    @display_name = 'DB Automated Mailer',  
    @mailserver_name = 'smtp.example.com',
    @port = 25;  
  
-- Create a Database Mail profile  
EXECUTE msdb.dbo.sysmail_add_profile_sp  
    @profile_name = 'DB Admin Profile',  
    @description = 'Profile for admin emails.';  
  
-- Add the account to the profile  
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp  
    @profile_name = 'DB Admin Profile',  
    @account_name = 'DB Admin',  
    @sequence_number = 1;
  
-- Grant user access to the Database Mail profile
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'DB Admin Profile',
    @principal_name = 'Marge',
    @is_default = 1;

Je zřejmé, že budete muset nahradit různé detaily svými vlastními. To také předpokládá, že zadáte poštovní server, který funguje.

Po dokončení byste měli být připraveni odeslat poštu.


  1. Odemknutí výhod programu certifikovaných partnerů MariaDB

  2. Jak nainstalovat SQL Server

  3. Výpis zastarání kurzoru

  4. Pomocí kroku Unpivot Step vytvořte tabulkovou tabulku z křížové tabulky