Skip to main content Link Menu Expand (external link) Document Search Copy Copied

core.PrepareEmailToSend

Podsumowanie:

Procedura składowana core.PrepareEmailToSend dodaje do tabeli core.Emails rekord z parametrami wiadomości do wysłania. Procedury można używać w akcji SQL do systemowej bazy danych.

Procedura ma następujące parametry:

  • SenderEmail: (wymagany) adres nadawcy; musi mieć wartość skonfigurowaną w ustawieniach systemu (Email > Nazwa użytkownika powiązana z poświadczeniami lub Exchange - Konto użytkownika).
  • ToEmails: (wymagany) adresy odbiorców, w przypadku kilku należy je rozdzielic średnikami (;).
  • CcEmails: (opcjonalny) adresy „do wiadomości”.
  • BccEmails: (opcjonalny) adresy „ukryte do wiadomości”.
  • Title: (obowiązkowy) temat wiadomości.
  • Body: (obowiązkowy) treść wiadomości.

Przykład wywołania:

EXEC core.PrepareEmailToSend
   @SenderEmail = 'default_sender@company.com'
  ,@ToEmails = 'receipient@company.com'
  ,@CcEmails = ''
  ,@BccEmails = ''
  ,@Title = 'message subject'
  ,@Body = 'message body'

Standardowo procedura dodaje jeden rekord, czyli jedną wiadomość e-mail. Aby dodać kilka rekordów, należy przygotować dane źródłowe i użyć procedury w pętli albo z kursorem. Poniżej przedstawiono przykład użycia procedury w pętli.

-- deklaracja zmiennych do procedury:
DECLARE @CurrentId int, @CurrentTitle varchar(255), @CurrentPrice decimal(10,2), @CurrentBody nvarchar(max);

-- deklaracja zmiennej tabelarycznej do zasielnia - dane źródłowe
DECLARE @EmailSourceData TABLE (
    [Id] int,
    [Name] varchar(255),
    [Price] decimal(10,2)
);

-- zasilenie zmiennej tabelarycznej
INSERT INTO @EmailSourceData ([Id], [Name], [Price]) VALUES (11, 'GNSS Receiver 11', 511);
INSERT INTO @EmailSourceData ([Id], [Name], [Price]) VALUES (22, 'GNSS Receiver 22', 522);
INSERT INTO @EmailSourceData ([Id], [Name], [Price]) VALUES (33, 'GNSS Receiver 33', 533);

-- deklaracja zmiennych do obsługi pętli: licznik i iterator
DECLARE @RowCount INT = (SELECT COUNT(*) FROM @EmailSourceData);
DECLARE @Counter INT = 1;

-- start pętli
WHILE @Counter <= @RowCount
BEGIN
       -- obliczenie danych dla bieżącego rekordu
    SELECT 
         @CurrentId = [Id]
       ,@CurrentTitle = [Name]
       ,@CurrentPrice = [Price]
    FROM (
        SELECT [Id], [Name], [Price], ROW_NUMBER() OVER (ORDER BY Id) AS RowNum
        FROM @EmailSourceData
    ) AS Subquery
    WHERE RowNum = @Counter;

       SET @CurrentBody = concat(@CurrentId, ' | ', @CurrentTitle, ' | ', @CurrentPrice);

       -- wywołanie procedury
    EXEC core.PrepareEmailToSend
        @SenderEmail = 'system@naxiom.com',
        @ToEmails = 'jmucha@naxiom.com',
        @CcEmails = '',
        @BccEmails = '',
        @Title = @CurrentTitle,
        @Body = @CurrentBody;

       -- przeliczenie iteratora
    SET @Counter = @Counter + 1;
END;
|← Predefiniowane funkcje i procedury |↑ Do góry |→ core.SubstitutionsPerformedByUser |

Copyright © 2025 OPTEAM SA. Theme Copyright © 2017-2020 Patrick Marsceill. Distributed by an MIT license.