Eu uso este código para enviar pelo botão enviar
Chamo ele pela propriedade send RLPreview1
_email_enviar:=T_email_enviar.create(application);
_email_enviar.CreateShowAndFree(TRLPreviewForm(Sender).Preview.Pages);
procedure T_email_enviar.CreateShowAndFree(aPages:TRLGraphicStorage);
var
pdf, ftr :TRLCustomSaveFilter;
s,preview,tmpfile,tmpext:string;
go:boolean;
qtabela : TZQuery;
IdSMTP1 : TIdSMTP;
IdMessage1 : TIdMessage;
Texto : TidText;
HTML : TidText;
IdSSL : TIdSSLIOHandlerSocketOpenSSL;
Anexo : TIdAttachmentFile;
begin
// CRIA O DIRETORIO ANEXO
if not DirectoryExists(ExtractFilePath(Application.ExeName)+'Anexo') then
ForceDirectories(ExtractFilePath(Application.ExeName)+'Anexo');
with T_email_enviar.Create(nil) do
begin
Pages :=aPages;
EdtAssunto.Text :=Pages.Title;
// procura no diretório corrente
GetDir(0,s);
preview:=IncludeTrailingBackslash(s)+SelfFileName;
// se não achar procura no diretório do executável
if not FileExists(preview) then
preview:=IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)+
'Anexo')+SelfFileName;
// valida os filtros
pdf:=SaveFilterByFileName('.pdf');
//
go:=(ShowModal=mrOk);
if not go then
Exit;
// seleciona filtro
ftr:=pdf;
if ftr=nil then
tmpext:='.exe'
else
tmpext:=ftr.DefaultExt;
//
tmpfile:=ExpandFileName(ChangeFileExt('Anexo\'+EdtAssunto.Text+' '+
FormatDateTime('yyyy-mm-dd',now)+'.',tmpext));
// try
// faz selfprint
if ftr=nil then
MakeSelfPrint(preview,tmpfile,Pages)
else
begin
// filtra
ftr.FileName:=tmpfile;
FilterPages(Pages,ftr,1,1,'',1);
end;
end;