Buen dia amigo, estoy tratando de enviar un correo desde la aplicacion pero se me presentan 2 problemas:
1. Necesito limpiar los Archivo adjunto antes de enviarlo ya que cuando llega al correo me aparece que tiene varios archivos adjunto (asumo que con todas la pruebas que hice aun conserva en la memori los que envie anteriormente)
2. Nececito Generar un Stream del archivo PDF para no que guardar el archivo en el PC o Movil y obviamente enviar directamente al Destinatario como archivo adjunto.
Les envio el codigo que tengo actualmente aunque aun tiene problema pero quiero ver si alguien me ayude a que funcione:
Código Delphi
[-]procedure TForm1.TMSFMXToolBarButton42Click(Sender: TObject);
var
filename: TStream;
s1: tStream;
begin
s1 := TMemoryStream.Create;
frxReport1.PrepareReport();
frxReport1.Export(frxPDFExport1);
frxReport1.SaveToStream(s1);
begin
UniQueryEmail.Close;
UniQueryEmail.SQL.Clear;
UniQueryEmail.SQL.Add('Select * from Email');
UniQueryEmail.SQL.Add('where instrut = :instrut');
UniQueryEmail.ParamByName('instrut').AsString := LabelRutInst.Text;
UniQueryEmail.Open;
if not uniqueryemail.Eof then
begin
filename := s1;
try
IdSMTP.Host := UniQueryEmailSMTP_HOST.AsString;
IdSMTP.Password := UniQueryEmailSMTP_PASSWORD.AsString;
IdSMTP.Port := StrToInt(UniQueryEmailSMTP_PORT.AsString);
IdSMTP.Username := UniQueryEmailSMTP_USERNAME.AsString;
data.Subject := 'PRUEBA DE ENVIO'; data.Recipients.EMailAddresses := LabelPacEmail.Text;
data.Body := memo1.Lines;
data.AttachmentTempDirectory := filename;
TIdAttachmentfile.create(data.MessageParts,filename); try
IdSMTP.Connect;
IdSMTP.Send(Data);
finally
IdSMTP.Disconnect(true);
ShowMessage('Correo enviado con exito');
end;
Except
on E: exception do
ShowMessage(E.Message)
end;
end
else
begin
ShowMessage('No se puede enviar el EMAIL');
end;
end;
end;