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 21-12-2005
Gabriel2 Gabriel2 is offline
Miembro
 
Registrado: sep 2004
Posts: 108
Poder: 20
Gabriel2 Va por buen camino
Enviar mail desde el Outlook Express

Hola compañeros del foro...

Cómo puedo mandar un mail desde el Outlook Express. Tiene que ser desde este programa y no desde otra aplicación o en base a un control. Necesito ejecutar la aplicación ,cargar la dirección de correo, un texto para el asunto y otro para el cuerpo del mensaje...
Utilizó Delphi 7...



Saludos y gracias...
Responder Con Cita
  #2  
Antiguo 21-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

El tema se ha tratado en ocasiones en los Foros. Escribí algo hace tiempo que me permitía hacer lo que dices (si es lo que creo) al menos en ThunderBird, pero, creo que tampoco va mal para OutLook, es cuestión de que lo pruebes. He escrito lo siguiente en un momento, solamente por que se vea la idea: siéntete libre de editar el código cuanto necesites, se precise o estimes oportuno. Ya dirás si te va bien o qué.

Código Delphi [-]
uses
  ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
const
  rsFormatoCuerpo = '&body="%S"';
  rsFormatoAsunto = 'mailto:%S?subject=%S';
var
  contador: integer;
  cuerpoTemporal: TStrings;
  cadenaEjecucion, destino, asunto, cuerpo: string;
begin
  destino := 'correo@electronico.es';
  asunto  := 'Este es el asunto del correo';
  cuerpo  := 'Este es el cuerpo del correo' +#13#10+ 'en dos líneas distintas';

  cuerpoTemporal := TStringList.Create;
  cuerpoTemporal.Text := cuerpo;

  cadenaEjecucion := Format(rsFormatoAsunto, [destino, asunto]);

  for contador := 0 to cuerpoTemporal.Count-1 do
  begin
    cuerpoTemporal[contador] := Format(rsFormatoCuerpo, [cuerpoTemporal[contador]]);
  end;

  cadenaEjecucion := cadenaEjecucion + cuerpoTemporal.Text;

  ShellExecute(Handle, 'open', PChar(cadenaEjecucion), nil, nil, SW_SHOWNORMAL);

  cuerpoTemporal.Free;
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 22-12-2005
Gabriel2 Gabriel2 is offline
Miembro
 
Registrado: sep 2004
Posts: 108
Poder: 20
Gabriel2 Va por buen camino
Gracias..

Muchas gracias por la ayuda Club Delphi!!!
Responder Con Cita
  #4  
Antiguo 25-05-2006
maro maro is offline
Miembro
 
Registrado: sep 2003
Ubicación: Sevilla
Posts: 104
Poder: 21
maro Va por buen camino
Hola a todos,

El código de como enviar un correo usando Outlook Espress, es muy bueno.

¿Sábrían, como podría, además, añadir a ese e-mail un fichero adjunto?

Muchas gracias por su tiempo.

Saludos.
__________________
Maro. OutSourcing de programación con Delphi.
Responder Con Cita
  #5  
Antiguo 25-05-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Código Delphi [-]
 rsFormatoAsunto = 'mailto:%S?subject=%S&file="%S"';
...
archivo:='C:\archivo.text'; 
.....
cadenaEjecucion := Format(rsFormatoAsunto, [destino, asunto, archivo]);
__________________


Última edición por ContraVeneno fecha: 25-05-2006 a las 22:46:34.
Responder Con Cita
  #6  
Antiguo 26-10-2008
nfmiguel nfmiguel is offline
Registrado
 
Registrado: ene 2008
Posts: 1
Poder: 0
nfmiguel Va por buen camino
error al cargar

Me da un error me podeis ayudar:

No se puede iniciar Microsoft Office Outlook. Argumento no valido en la línea de comnados .Compruebe el modificador que esta usando.
Responder Con Cita
  #7  
Antiguo 14-09-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 21
JXJ Va por buen camino
no sirve para adjuntar un archivo estoy usando esto

Código Delphi [-]
cadenaEjecucion := 'mailto:correo@electronico.es?subject=Este es el asunto del correo&file='C:\archivo.text';

  ShellExecute(Handle, 'open', PChar(cadenaEjecucion), nil, nil, SW_SHOWNORMAL);

ni asi

cadenaEjecucion := 'mailto:correo@electronico.es?subject=Este es el asunto del correo&file="C:\archivo.text"';

ShellExecute(Handle, 'open', PChar(cadenaEjecucion), nil, nil, SW_SHOWNORMAL);

ni en delphi 7 ni en 2010
Responder Con Cita
  #8  
Antiguo 14-09-2010
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 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
  #9  
Antiguo 14-09-2010
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Te comento el Codigo de Delphi 5
En caso de que te haga falta el archivo Outlook_tlb.pas lo pode obtener de un ejemplo en el FTP
(te dejo el link)
http://terawiki.clubdelphi.com/Delph..._a_Outlook.zip

Última edición por Casimiro Notevi fecha: 27-12-2015 a las 11:21:11.
Responder Con Cita
  #10  
Antiguo 27-12-2015
epm epm is offline
Registrado
NULL
 
Registrado: oct 2011
Posts: 5
Poder: 0
epm Va por buen camino
Correo con Outlook

Hola.
El enlace no funciona
Responder Con Cita
  #11  
Antiguo 27-12-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
http://terawiki.clubdelphi.com/Delph..._a_Outlook.zip
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 05:51:42.


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