Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Enviar Mail con Imagen Adjunta desde Ms Outlook (https://www.clubdelphi.com/foros/showthread.php?t=83910)

smessina 14-08-2013 03:02:42

Enviar Mail con Imagen Adjunta desde Ms Outlook
 
Hola : antes que nada gracias por su tiempo, necesito si alguien tiene un ejemplo de Enviar una Imagen incrustada ( osea el mail en formato html) a través del Ms Outlook .
Uso Delphi 7 y no me sirve mandar los mails por Indy porque se demoran mucho y me pidieron que ponga los mails en la bandeja de salida del Ms Outlook .

La Manera en que mando Mails en texto plano es la Siguiente
Código Delphi [-]
Function tfppal.EnviarCorreo(const Titulo, Mensaje, NombreArchivo, NombreArchivoCompleto, CorreoDestino, CorreoAlterno: String; AutoEnvio: Boolean): Boolean;
var
Outlook: _Application;
AFolder : MAPIFolder;
ANameSpace : _NameSpace;
AMailItem : _MailItem;
AAttachments : Attachments;
AppWasRunning: boolean; //Comprobar ejecución de outlook
lcid: integer; //ID usuario
Unknown: IUnknown;
Resultado: HResult;
begin
 lcid := LOCALE_USER_DEFAULT;
 //----
{Resultado := GetActiveObject(CLASS_OutlookApplication, nil, Unknown);
 if (Resultado = MK_E_UNAVAILABLE) or (AppWasRunning) then
  Outlook := CoOutlookApplication.Create
 else begin
  OleCheck(Resultado); // Comprobar que se generó el objeto
  OleCheck(Unknown.QueryInterface(_Application, Outlook));
  AppWasRunning := True; // Establece que outlook esta ejecutándose
 end;        }
 //Obtener Sesión
 Outlook := CoOutlookApplication.Create;
 ANameSpace := Outlook.Get_Session;
 //Obtener bandeja de entrada
 AFolder := ANameSpace.GetDefaultFolder(olFolderInbox);

 //Muestra la carpeta de entrada
 //AFolder.Display;

 //Genera un nuevo correo
 AMailItem := (Outlook.CreateItem(olMailItem) as MailItem);
 AMailItem.To_ := CorreoDestino;
 AMailItem.BCC := CorreoAlterno;
 AMailItem.Subject := Titulo;
 AMailItem.Body := Mensaje;

 AAttachments := AMailItem.Get_Attachments;

 //Agregar adjuntos en caso de que existan
 if (Length(NombreArchivoCompleto) > 0) then begin
  AAttachments.Add(NombreArchivoCompleto,$00000001 ,
  Length(Mensaje)+1,NombreArchivo);
 end;

 AMailItem.Save;
 If AutoEnvio then begin
   Try
    AMailItem.Send;
    Result := True;
    except on E:EExternal do begin
      Result := False;
    end;
   end;
 end else begin
  try
   AMailItem.Display(0);
   Result := True;
   except on E:EExternal do begin
    Result := False;
    Raise;
   end;
  end;
 end;
// MessageDlg('Correo Enviado Correctamente',mtinformation,[mbok],0);
//  Outlook.Quit; //Cierra Outlook
end;

Pericles 02-10-2013 23:46:33

Hola..Encontré que con una línea de código se logra....(luego de buscar por medio internet jaja)
Hay que modificar una linea del codigo que propones arriba.


Código Delphi [-]

//AMailItem.Body := Mensaje;
 AmailItem.HTMLBody := Mensaje;


Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject); 
var i: integer; 
codigoHtml: string; 
begin  

codigoHtml := ' xxxxxxxxxxxxxxxxxxxxx ' ;

 //procedimiento tomado de hilo anterior(arriba)
 EnviarCorreo('intento 1500!!! ',codigoHtml,'','','[email protected]','',true);

Gracias
Saludos

Nicolas Perichon


La franja horaria es GMT +2. Ahora son las 18:18:10.

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