Ver Mensaje Individual
  #8  
Antiguo 14-09-2010
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Reputación: 20
Enan0 Va por buen camino
El tema es que eso te va a enviar el correo desde la Aplicacion de correos por defecto.

Podes utilizar la API de Outlook para enviar el correo?

TE dejo un ejemplo

Código Delphi [-]

unit uTestOutlook;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,Outlook_TLB,
  StdCtrls;

type
  TForm1 = class(TForm)
    cmdLogin: TButton;
    cmdGetinfo: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    cmdCreate: TButton;
    procedure cmdLoginClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure cmdGetinfoClick(Sender: TObject);
    procedure cmdCreateClick(Sender: TObject);
  private
    { Private declarations }
    fsesion:_Application;
    fCalendar:MAPIFolder;
    fTaskFolder:MAPIFolder;
    fOutbox:MAPIFolder;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.cmdLoginClick(Sender: TObject);
begin
  if fsesion=nil then
  //Creamos la Conexion.
    fsesion:=CoOutlookApplication.Create;
  cmdGetinfo.Enabled:=true;
  Edit1.Enabled:=True;
  cmdCreate.Enabled:=True;
  //Obtenemos el nombre del Profile (se puede ver en panel de control / Correo).
  Memo1.Lines.add(fsesion.Name);
  
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  fsesion.Quit;
end;

procedure TForm1.cmdGetinfoClick(Sender: TObject);
var
  i:integer;
  Appt:_AppointmentItem;
begin
  //Obtenemos Las Citas..
  //Seleccionamos la Carpeta Calendario
  fCalendar:=fsesion.Session.GetDefaultFolder(olFolderCalendar);
  if fCalendar= nil then begin
    memo1.Lines.adD('nada que mostrar en Calendario');
    exit;
  end;

  Memo1.Lines.add('Nombre: '+fcalendar.Name);
 //Cantidad de Items
  for i:=1 to fCalendar.Items.Count do begin
    Memo1.lines.add('************* Item Nº '+inttostr(i) + ' ***********');
    //Obtenemos el Item y lo enmascaramos.
    appt:=fCalendar.Items.Item(i) as AppointmentItem;
    //Obtenemos la Descripcion. y otros.
    memo1.lines.add('Subject: ' +Appt.Subject);
    memo1.lines.add('    Date: ' +FormatDateTime('c',Appt.Start));
    Memo1.lines.add('*********************************************');
    appt:=nil;
  end;

end;

procedure TForm1.cmdCreateClick(Sender: TObject);
var
  Email:_MailItem;
begin
  if fsesion=nil then exit;
  //Creamos un nuevo correo
  Email:=fsesion.CreateItem(olMailItem) as MailItem;
  Email.Subject:=Edit1.Text;
  Email.Body:='Test of body';
  Email.To_:='tucorreo@dominio.com';
  if FileExists(ExtractFilePath(paramstr(0))+ '\Test.txt') then
  //el Modo olOLE es para enviarlo como archivo Adjunto (Documento, archivo ZIP etc)

    email.Attachments.Add(ExtractFilePath(paramstr(0))+ '\test.txt', olOLE, 0, 'Archivo') ;
  //envia el correo Si outlook esta abierto lo deja en la bandeja de salida.
  //caso contraro lo envia.
  {Dependiendo de la version y Service pack envia una advertencia de que una aplicacion
   Esta intentado hacer uso de outlook y luego te permite desidir que hacer}
  Email.Send;
  Email:=nil;
end;

end.

Última edición por Enan0 fecha: 14-09-2010 a las 20:26:16.
Responder Con Cita