Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Perbaiki "nama profil tidak valid" Saat Mengirim Email dari SQL Server

Jika Anda mencoba mengirim email dari SQL Server, tetapi Anda mendapatkan "nama profil tidak valid" itu mungkin karena Anda belum menentukan profil yang valid untuk @profile_name argumen.

Contoh

Misalnya, katakanlah Anda menggunakan kode T-SQL berikut untuk mengirim email pemberitahuan ke administrator setiap kali pekerjaan Agen Server SQL gagal:

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

Tetapi Anda mendapatkan kesalahan berikut:

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

Kesalahan ini secara khusus memberi tahu kita bahwa “nama profil tidak valid”.

Untuk mengirim email dengan Database Mail, Anda perlu menentukan profil alih-alih akun pengguna secara langsung. Dalam hal ini, saya menetapkan @profile_name dari DB Admin Profile , tetapi profil seperti itu sebenarnya tidak ada.

Sebelum saya dapat mengirim email, yang perlu saya lakukan adalah menambahkan pengguna ke msdb database, buat akun email database, lalu buat profil dan tambahkan akun email database ke profil itu. Saya kemudian perlu menambahkan pengguna ke profil.

Secara keseluruhan, itu akan terlihat seperti ini:

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

Jelas, Anda harus mengganti berbagai detail dengan milik Anda sendiri. Ini juga mengasumsikan bahwa Anda menentukan server email yang berfungsi.

Setelah selesai, Anda harus siap mengirim email.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ATAU Operator korsleting di SQL Server

  2. Kapan dan bagaimana menggunakan klausa SQL PARTITION BY

  3. Offset Baris di SQL Server

  4. Perbaiki:"Pernyataan BACKUP LOG tidak diizinkan saat model pemulihan SEDERHANA" di SQL Server (dan SQL Edge)

  5. Apa yang melewati parameter ke SQL dan mengapa saya membutuhkannya?