Методы отправки электронных писем с SQL Server с примерами кода

Чтобы отправить электронное письмо с SQL Server, вы можете использовать различные методы. Вот несколько вариантов с примерами кода:

  1. Использование встроенной хранимой процедуры SQL Server (sp_send_dbmail):

    EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'YourProfile',
    @recipients = 'recipient@example.com',
    @subject = 'Email Subject',
    @body = 'Email Body';
  2. Использование интеграции SQL CLR (Common Language Runtime):

    -- Create the CLR stored procedure
    CREATE PROCEDURE dbo.SendEmail
    @ToEmail VARCHAR(100),
    @Subject VARCHAR(100),
    @Body VARCHAR(MAX)
    AS EXTERNAL NAME [YourAssembly].[YourClass].[SendEmail];
    -- C# code within the CLR assembly
    using System.Net.Mail;
    public class YourClass
    {
    public static void SendEmail(string ToEmail, string Subject, string Body)
    {
        MailMessage mail = new MailMessage();
        SmtpClient smtpClient = new SmtpClient("your-smtp-server");
        mail.From = new MailAddress("your-email@example.com");
        mail.To.Add(ToEmail);
        mail.Subject = Subject;
        mail.Body = Body;
        smtpClient.Send(mail);
    }
    }

    Перед использованием этого метода необходимо включить интеграцию CLR в SQL Server и создать сборку CLR.

  3. Использование внешних языков программирования (например, PowerShell):

    EXEC xp_cmdshell 'powershell.exe -ExecutionPolicy Bypass -Command "Send-MailMessage -To ''recipient@example.com'' -From ''your-email@example.com'' -Subject ''Email Subject'' -Body ''Email Body'' -SmtpServer ''your-smtp-server''"';

Это всего лишь несколько примеров того, как можно отправлять электронную почту с SQL Server. Доступны и другие методы, например использование сторонних библиотек или написание собственных приложений, взаимодействующих с базой данных.