Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-10-2005
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 21
Walterdf Va por buen camino
Problemas c/función para enviar mails con Outlook Express

Hola a todos.
Desarrollé una aplicación para preparar pedidos y enviarlos por email.
Para enviar x mail tomé un ejemplo de función (creo que la extraje de estos foros) que funciona bien salvo por el hecho de que una vez enviados los mensajes, todas las tablas, querys, etc pierden el DataBaseName. Suena muy extraño pero así es.
Trabajo con Delphi 6 y una simple base de datos en Paradox.
El código de la función es este:

Código Delphi [-]
 function SendMail(const Subject, Body, FileName, SenderName,
   SenderEMail, RecipientName, RecipientEMail: string): Integer;
 var
   Message: TMapiMessage;
   lpSender, lpRecipient: TMapiRecipDesc;
   FileAttach: TMapiFileDesc;
 
   SM: TFNMapiSendMail;
   MAPIModule: HModule;
 
 begin
   FillChar(Message, SizeOf(Message), 0);
   with Message do
   begin
     if (Subject <> '') then
       lpszSubject := PChar(Subject);
 
     if (Body <> '') then
       lpszNoteText := PChar(Body);
 
     if (SenderEmail <> '') then
     begin
       lpSender.ulRecipClass := MAPI_ORIG;
       if (SenderName = '') then
         lpSender.lpszName := PChar(SenderEMail)
       else
         lpSender.lpszName := PChar(SenderName);
         lpSender.lpszAddress := PChar(SenderEmail);
         lpSender.ulReserved := 0;
         lpSender.ulEIDSize := 0;
         lpSender.lpEntryID := nil;
         lpOriginator := @lpSender;
     end;
 
     if (RecipientEmail <> '') then
     begin
       lpRecipient.ulRecipClass := MAPI_TO;
       if (RecipientName = '') then
         lpRecipient.lpszName := PChar(RecipientEMail)
       else
         lpRecipient.lpszName := PChar(RecipientName);
         lpRecipient.lpszAddress := PChar(RecipientEmail);
         lpRecipient.ulReserved := 0;
         lpRecipient.ulEIDSize := 0;
         lpRecipient.lpEntryID := nil;
         nRecipCount := 1;
         lpRecips := @lpRecipient;
       end
       else
         lpRecips := nil;
 
     if (FileName = '') then
     begin
       nFileCount := 0;
       lpFiles := nil;
     end
     else
     begin
       FillChar(FileAttach, SizeOf(FileAttach), 0);
       FileAttach.nPosition := Cardinal($FFFFFFFF);
       FileAttach.lpszPathName := PChar(FileName);
 
       nFileCount := 1;
       lpFiles := @FileAttach;
     end;
   end;
 
   MAPIModule := LoadLibrary(PChar(MAPIDLL));
   if MAPIModule = 0 then
     Result := -1
   else
     try
       @SM := GetProcAddress(MAPIModule, 'MAPISendMail');
       if @SM <> nil then
       begin
         Result := SM(0, Application.Handle, Message, MAPI_DIALOG or MAPI_LOGON_UI, 0);
       end
       else
         Result := 1;
     finally
       FreeLibrary(MAPIModule);
     end;
 
   if Result <> 0 then
     MessageDlg('Error sending mail (' + IntToStr(Result) + ').', mtError, [mbOK], 0);
 end;
La llamada a la función la hago de la siguiente manera:

Código Delphi [-]
 SendMail('Pedidos', 'Envío pedidos para procesar', 'C:\Pedidos\pedidoX.pdf','',
   'origen@mail.com','','destino@mail.com' );
Espero puedan darme una mano.
Saludos y gracias de antemano.

Walter

Última edición por dec fecha: 04-10-2005 a las 21:48:12. Razón: ¡¡Encerrad el código fuente entre las etiquetas [DELPHI] ... [/DELPHI]!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:45:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi