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
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;