web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

No record found.

News and Announcements icon
Community site session details

Community site session details

Session Id :
Small and medium business | Business Central, N...
Suggested Answer

Attachment along with an Email

(0) ShareShare
ReportReport
Posted on by 254

Dear Members,

 I would like to know how to make an attachment along with an email. For example, I would like to send aged accounts payable report once it is generated. 

Please provide me an appropriate solution.

Thanks and Regards,

Saravanan M

I have the same question (0)
  • Suggested answer
    Nitin Verma Profile Picture
    21,788 Moderator on at

    Hi,

    You can try below


    EmailOutStream: OutStream;
    RecRef: RecordRef;
    email: Codeunit Email;
    EmailMessage: Codeunit "Email Message";


    RecRef.GetTable('your report table');
    RecRef.SetTable('your report table');

    TempBlob.CreateInStream(EmailInStream, TextEncoding::UTF8);
    Tempblob.CREATEOUTSTREAM(EmailOutStream, TextEncoding::UTF8);
    REPORT.SaveAs('report id, '', ReportFormat::Pdf, EmailOutStream, RecRef);

    EmailMessage.Create('To email id', 'your subject', 'email body');
    EmailMessage.AddAttachment('file name', 'PDF', EmailOutStream);
    email.Send(EmailMessage, Enum::"Email Scenario"::Default);

  • Suggested answer
    pankaj.k Profile Picture
    1,018 on at

    Hello M Saravanan,


    Please find the below code that will help you how to create mail and attached report.


    procedure SendPaperStatementMail(Var Rec_AccountNumber: Text)
    var
    email: Codeunit Email;
    emailMsg: Codeunit "Email Message";
    tempblobcu: Codeunit "Temp Blob";
    cnv64: Codeunit "Base64 Convert";
    InStr: InStream;
    txtB64: Text;
    Text001: Text;
    RecRef: RecordRef;
    Outstreamreport: OutStream;
    LoanStatement: Report "Loan Statement Report";
    LoanHeader: Record Ecl_LoanHeader;
    char13: Char;
    char10: Char;
    NewLine: Text;
    cominfo: Record "Company Information";
    custrec: Record customer;
    SalesRec: Record "Sales & Receivables Setup";
    begin
    cominfo.Get();
    SalesRec.Get();
    LoanHeader.Reset();
    LoanHeader.SetRange(AccountNumber, Rec_AccountNumber);
    IF LoanHeader.FindFirst() then
    if SalesRec.PaperStatementEmail <> '' then
    if custrec.get(LoanHeader."Customer No.") then
    if custrec.ecl_SendPaperStatement then
    if (LoanHeader."Statement Date" <> 0D) or (LoanHeader."Statement No" <> 0) then begin
    RecRef.GetTable(LoanHeader);
    tempblobcu.CreateOutStream(Outstreamreport);
    Report.SaveAs(50191, 'Test', ReportFormat::Pdf, Outstreamreport, RecRef);
    char13 := 13;
    char10 := 10;
    NewLine := char10;
    Text001 := StrSubstNo('Dear %1,', LoanHeader.name);
    Text001 += NewLine + NewLine;
    Text001 += StrSubstNo('Please find attached your monthly statement for your ggg Account %1 which has a current balance of $%2.', LoanHeader.AccountNumber, format(ROUND(LoanHeader.LastClosingBalance, 0.01, '='), 0, '<Precision,2:2><Standard Format,0>'));
    Text001 += NewLine + NewLine;
    Text001 += StrSubstNo('The minimum payment required for this month is $%1 and it is due on %2.', format(ROUND(LoanHeader.Minimum_Payment, 0.01, '=') + LoanHeader.Total_Arrears, 0, '<Precision,2:2><Standard Format,0>'), Format(LoanHeader.NextDueDate, 0, '<Day,2>/<Month,2>/<Year4>'));
    Text001 += NewLine + NewLine;
    Text001 += StrSubstNo('Please contact us on %1 if you have any questions or would like to speak to us about your account.', cominfo."Phone No. 2");
    Text001 += NewLine + NewLine;
    Text001 += NewLine + NewLine;
    Text001 += 'Sincerely';
    Text001 += NewLine + NewLine;
    Text001 += 'The ggTeam' + NewLine;
    Text001 += cominfo."Home Page" + NewLine;
    text001 += cominfo."Phone No. 2";
    tempblobcu.CreateInStream(InStr);
    txtB64 := cnv64.ToBase64(InStr, true);
    emailMsg.Create(SalesRec.PaperStatementEmail, StrSubstNo('Paper Statement for the Loan Account No. %1', LoanHeader.AccountNumber), Text001);
    emailMsg.AddAttachment('Statement for ' + LoanHeader.name + ' as of ' + Format(LoanHeader."Statement Date", 0, '<Day,2>-<Month,2>-<Year>') + '.pdf', 'application/pdf', txtB64);
    IF email.Send(emailMsg) then;
    end;
    end;

  • Suggested answer
    DAnny3211 Profile Picture
    11,407 Super User 2026 Season 1 on at
  • Suggested answer
    YUN ZHU Profile Picture
    98,421 Super User 2026 Season 1 on at

    Hi, You can try out the following latest new feature.

    Use default attachments in email sent from Dynamics 365 Business Central

    https://yzhums.com/32793/

    Extend Email Capabilities:

    https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-extending-email#email-scenarios

    https://redandbundle.com/2022/04/19/create-a-custom-email-scenario-for-business-central/

    Hope this helps as well.

    Thanks.
    ZHU

  • M Saravanan Profile Picture
    254 on at

    Dear YUN ZHU,

    Thank you so much for your reply. We followed one of your blog to meet our requirement. Unfortunately we are not able to meet our exact requirement as in Business Central the  SMTP Mail setup(Record 409) and SMTP Mail (codeunit 400) had been removed and replaced by Email Message (replaces SMTP Mail) and Email Accounts (replaces SMTP Mail setup).

    We are getting stuck at this point. Please let us know an alternative solution to meet our requirement.

    The Blog which we followed earlier:   https://yzhums.com/1799/

    Thanks in Advance,

    M Saravanan

  • pankaj.k Profile Picture
    1,018 on at

    I use Email Message. you can check my code also.

  • Suggested answer
    YUN ZHU Profile Picture
    98,421 Super User 2026 Season 1 on at

    Hi, hope the following helps.

    Table ‘SMTP Mail Setup’ and Codeunit ‘SMTP Mail’ is marked for removal Tag: 17.0

    https://yzhums.com/7485/

    Thanks.

    ZHU

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Stars!

Congratulations to our 2025 Community Spotlights

Thanks to all of our 2025 Community Spotlight stars!

Leaderboard > Small and medium business | Business Central, NAV, RMS

#1
OussamaSabbouh Profile Picture

OussamaSabbouh 1,850 Super User 2026 Season 1

#2
YUN ZHU Profile Picture

YUN ZHU 1,045 Super User 2026 Season 1

#3
Dhiren Nagar Profile Picture

Dhiren Nagar 959 Super User 2026 Season 1

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans