Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Поправете „името на профила не е валидно“ при изпращане на поща от SQL Server

Ако се опитате да изпратите имейл от SQL Server, но получите „името на профила не е валидно“, това вероятно е защото не сте посочили валиден профил за @profile_name аргумент.

Пример

Например, да приемем, че използвате следния T-SQL код, за да изпратите имейл с известие до администратора, когато задачата на 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';

Но получавате следната грешка:

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

Тази грешка конкретно ни казва, че „името на профила не е валидно“.

За да изпратите имейл с Database Mail, трябва да посочите профил вместо потребителски акаунт директно. В този случай посочих @profile_name на DB Admin Profile , но такъв профил всъщност не съществува.

Преди да мога да изпратя поща, това, което трябва да направя, е да добавя потребител към msdb база данни, създайте имейл акаунт в базата данни, след това създайте профил и добавете имейл акаунта на базата данни към този профил. След това трябва да добавя потребителя към профила.

Всичко ще изглежда така:

-- 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;

Очевидно ще трябва да замените различните детайли със свои собствени. Това също предполага, че сте посочили пощенски сървър, който работи.

След като сте готови, трябва да сте готови да изпращате поща.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL клиент за Mac OS X, който работи с MS SQL Server

  2. ODBC скаларни функции за дата и час в SQL Server (T-SQL примери)

  3. SQL Server 2016:Създайте таблица

  4. 5 страхотни ресурса, които да ви помогнат да промените ролята си за наблюдение на база данни

  5. Как да запазите един екземпляр на връзка на SQL Server отворен за множество заявки в C#?