Na primeira linha: É porque nesse caso, eu estou pegando as informações do xml diretamente do meu banco de dados e salvando o arquivo na pasta do sistema. (sistema bem antigo)
Eu faço o select no banco, coloco as informações em uma StringList e depois converto para UTF8, assim:
StrNFeEmail.Text := Trim(StrNFeEmail.Text);
StrNFeEmail.Text := StringReplace(StrNFeEmail.Text, 'ISO-8859-1', 'UTF-8', [rfReplaceAll]);
StrNFeEmail.Text := UTF8Encode(StrNFeEmail.Text);
Salvo a stringlist no diretório do meu sistema em .xml
StrNFeEmail.SaveToFile(UTF8Encode('NFe' + FormatFloat('000000000', StrToInt(edtNota.Text)) + '.xml'));
e depois em uma outra variável, eu incluo o caminho do sistema, para o acbrmail buscar esse arquivo e anexar.
sXML := sCaminhoSistema + 'NFe' + FormatFloat('000000000', StrToInt(edtNota.Text)) + '.xml'; //Fran 02/10/2024 - Anexo para envio pelo ACBRMail