Hi Nitin,
Thank you for your code suggestion.
I could resolve the issue and get attached all the documents to a mail by using below the code. issue was that i haven't used incomeDocAttach.CalcFields(Content); in my previous code. that's why i got previous error. but after referring article in this url https://yzhums.com/26326/ ,i manage to get my code working.
procedure SendEMailWithAttahment(genBatch: Record "Gen. Journal Batch")
var
EmailMesageCU: Codeunit "Email Message";
EmailSendCU: Codeunit Email;
EmailAccount: Record "Email Account";
BodyMessage: Text;
AddBodyMessage: Text;
Recipients: list of [text];
AttachmentStream: InStream;
incomeDocAttach: Record "Incoming Document Attachment";
incomeDocAdditionalAttach: Record "Incoming Document Attachment";
incomeDoc: Record "Incoming Document";
genJnlLine: Record "Gen. Journal Line";
begin
EmailAccount.Reset();
EmailAccount.SetFilter(Connector, 'SMTP');
if EmailAccount.FindLast() then;
Clear(BodyMessage);
Clear(AddBodyMessage);
Clear(Recipients);
Recipients.Add('abc@test.com');
BodyMessage := 'Document Posted with out Queue';
AddBodyMessage := BodyMessage;
EmailMesageCU.Create(Recipients, 'Test Mail', AddBodyMessage, true);
incomeDoc.Reset();
genJnlLine.SetRange("Journal Batch Name", genBatch.Name);
if genJnlLine.FindSet() then begin
repeat begin
incomeDoc.SetRange("Related Record ID", genJnlLine.RecordId);
if incomeDoc.FindFirst() then begin
if incomeDoc.GetMainAttachment(incomeDocAttach) then begin
incomeDocAttach.CalcFields(Content);
incomeDocAttach.Content.CreateInStream(AttachmentStream);
EmailMesageCU.AddAttachment(incomeDocAttach.GetFullName(), incomeDocAttach."File Extension", AttachmentStream);
end;
if incomeDoc.GetAdditionalAttachments(incomeDocAdditionalAttach) then begin
repeat begin
incomeDocAdditionalAttach.CalcFields(Content);
incomeDocAdditionalAttach.Content.CreateInStream(AttachmentStream);
EmailMesageCU.AddAttachment(incomeDocAdditionalAttach.GetFullName(), incomeDocAdditionalAttach."File Extension", AttachmentStream);
end until incomeDocAdditionalAttach.Next() = 0;
end;
end;
end;
until genJnlLine.Next() = 0;
end;
EmailSendCU.Enqueue(EmailMesageCU, Enum::"Email Scenario"::Default);
End;
Thanks,
Nishantha.