В SQL Server Database Mail използва профили за изпращане на имейла, а не директно акаунти.
Следователно първо трябва да създадете профил и да създадете акаунт, след което да добавите акаунта към профила. Трябва също да предоставите потребител в msdb достъп до база данни до профила.
За да добавите акаунт в Database Mail към профил с T-SQL, използвайте sysmail_add_profileaccount_sp
съхранена процедура в msdb база данни.
Пример
Ето пример за добавяне на акаунт в Database Mail към профил на Database Mail с помощта на T-SQL.
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'DB Admin Profile',
@account_name = 'DB Admin',
@sequence_number = 1;
В този случай добавям акаунта „DB Admin” към профила „DB Admin Profile”.
Това предполага, че профилът и акаунтът вече съществуват.
Можете да добавите няколко акаунта към профил на Database Mail. Поредният номер определя реда, в който акаунтите се използват в профила. Database Mail започва с акаунта, който има най-нисък пореден номер. Ако този акаунт не успее, се използва акаунтът със следващия най-висок пореден номер и т.н.
Ако съществуват повече от един акаунт със същия пореден номер, Database Mail ще използва само един от тези акаунти за дадено имейл съобщение.
Въпреки това, няма гаранция, че същият акаунт ще бъде използван за следващи съобщения. Например, ако два акаунта споделят пореден номер 1, може да получите някои имейли от единия акаунт и други от другия акаунт.
Посочете идентификатори на акаунт/профили
Като алтернатива можете да посочите идентификатора на профила и/или идентификатора на акаунта вместо техните имена.
Следователно бихме могли да променим предишния пример, за да изглежда така:
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_id = 1,
@account_id = 1,
@sequence_number = 1;
Това очевидно предполага, че това са идентификаторите за въпросните акаунти.
Имайте предвид, че трябва да се предостави или името, или идентификационния номер.
Също така, когато се предоставят идентификаторите, те се предоставят като int .
Имайте предвид, че sysmail_add_profileaccount_sp
съхранената процедура е в msdb база данни и е собственост на dbo схема. Следователно, ще трябва да използвате три части наименование, ако го изпълнявате извън msdb база данни.