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 17-07-2006
Jose Manuel Jose Manuel is offline
Miembro
 
Registrado: may 2003
Posts: 112
Poder: 21
Jose Manuel Va por buen camino
Enviar email usando OUTLOOK 2003

Hola, en una aplicación hecha con DELPHI 6 tengo un problema para enviar correos electrónicos usando outlook 2003, hasta la fecha todos los clientes tenian la misma versión y los enviaba sin problemas, pero ahora algunos han cambiado a OutLook 2003 y no les funciona.

Alguien puede decirme como enviar mesajes con OUTLOOK 2003 y como se puede discriminar si el usuario esta trabajando con OUTLOOK 2002 o 2003, para utilizar uno u otro procedimiento.

Adjunto un ejemplo del procedimiento utilizado hasta la fecha para enviar mensajes con anexos usando OUTLOOK 2002.

Muchas gracias, y un saludo a todos

Jose Manuel.

Código:
procedure TForm1.Button16Click(Sender: TObject);
const
  olMailItem = 0;
  olByValue = 1;
var
  OutlookApp, MailItem, MyAttachments: OLEVariant;
begin
  try
    OutlookApp := GetActiveOleObject('Outlook.Application');
  except
    OutlookApp := CreateOleObject('Outlook.Application');
  end;
  try
    MailItem := OutlookApp.CreateItem(olMailItem);
    MailItem.Recipients.Add('YourMailAddress@something.com');
    MailItem.Subject := 'Your Subject';
    MailItem.Body    := 'Your Message';
    myAttachments    := MailItem.Attachments;
    myAttachments.Add('C:\SomeFile.txt', olByValue, 1, 'Name of Attachment');
    MailItem.Send;
  finally
    myAttachments := VarNull;
    OutlookApp    := VarNull;
  end;
end;
Responder Con Cita
  #2  
Antiguo 17-07-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
¿y si utilizas el shellExec con un comando mailto ?
__________________

Responder Con Cita
  #3  
Antiguo 19-07-2006
Jose Manuel Jose Manuel is offline
Miembro
 
Registrado: may 2003
Posts: 112
Poder: 21
Jose Manuel Va por buen camino
Utilizando el comando MAILTO, no se podría adjuntar anexos y en este caso es muy importante que en cada correo se adjunte un fichero anexo.

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Self.Handle, nil,
    'mailto:eds2004 @ latiumsoftware.com' +
    '?Subject=Test&Body=Just testing the example',
    nil, nil, SW_NORMAL);
end;
Responder Con Cita
  #4  
Antiguo 19-07-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
¿quién dice que no se pueden adjuntar archivos?
__________________

Responder Con Cita
  #5  
Antiguo 19-07-2006
Jose Manuel Jose Manuel is offline
Miembro
 
Registrado: may 2003
Posts: 112
Poder: 21
Jose Manuel Va por buen camino
Creo que sería más práctico, que si sabes la respuesta la pongas en el foro.

La pregunta no era si MAILTO podía enviar anexos (Hay respuesta para esto en varios foros que dicen que no es posible), sino que utilizando el código del ejemplo que ajunte en el primer mensaje, funciona perfectamente para enviar correos electrónicos con anexos en OUTLOOK 2002, pero da error en usuarios con OUTLOOK 2003.

Muchas gracias por tu interes.
Jose Manuel.
Responder Con Cita
  #6  
Antiguo 19-07-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
Hombre, no te lo tomes a mal

Según aquí, dicen que si se puede.

Mi recomendación de usar el shellexecute es porque de esta forma no tienes que preocuparte por si tiene outlook exprees, 2000, 2003, edora, o lo que sea, con shellexecute se abrirá el correo predeterminado. Por eso creo que la solución a tu problema sería utilizar el shellexecute.

Cita:
Empezado por Jose Manuel
...(Hay respuesta para esto en varios foros que dicen que no es posible),...
pues según esta instrucción si se puede, si utilizas el shellexecute de esta forma:
Código Delphi [-]
ShellExecute(Handle, 'open', 
'mailto:SomeN@Somewhere.com?subject=MySubject&Attach=''C:\Attachment.txt''',
nil, nil, SW_SHOW)
Puntos clave
(1) El adjunto (&Attach) debe estar al final
(2) la ruta y el nombre del archivo se definen por separado por comillas
(3) No todos aceptan archivos adjuntos, pero esto funciona con Outlook 97 & 2000. Podrías probarlo con el 2003


Fuente: steve dabrosca



__________________


Última edición por ContraVeneno fecha: 19-07-2006 a las 22:18:25.
Responder Con Cita
  #7  
Antiguo 25-09-2006
alapaco alapaco is offline
No confirmado
 
Registrado: jun 2003
Ubicación: Buenos Aires
Posts: 287
Poder: 0
alapaco Va por buen camino
Lo que dice ContraVeneno funciona perfecto...pero se puede attachar mas de un archivo ??

Vengo probando desde hace varios días y no le encuentro la vuelta...alguna sabe si se puede ??

Desde ya gracias.
Responder Con Cita
  #8  
Antiguo 18-04-2007
fervasek fervasek is offline
Registrado
 
Registrado: abr 2007
Posts: 1
Poder: 0
fervasek Va por buen camino
enviar email usando OUTLOOK 2003

Tengo una duda, como se le pasaria a shellexecute() el parametro para el cuerpo del email, podiendo poner distintos tamaños, colres y fuentes de letras, y tambien poder poner una imagen (logo) en el cuerpo.
Muchas gracias.
Responder Con Cita
  #9  
Antiguo 18-04-2007
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
Hasta donde tengo conocimiento, tendrías que convertir un texto a HTML para que tuviera formato. Y con este texto con formato, se puede enviar el correo.

http://www.clubdelphi.com/foros/showthread.php?t=18819

Fuera de eso, alguien podría tener una mejor idea
__________________

Responder Con Cita
  #10  
Antiguo 27-06-2007
CORBATIN CORBATIN is offline
Miembro
 
Registrado: may 2003
Ubicación: España
Posts: 131
Poder: 21
CORBATIN Va por buen camino
Hola a todos. Me gustaría saber como lo tendría que hacer para que además de envíar el correo usando outlook 2003, pues quiero incluir un archivo html pero que salga como fondo. Mi intención es que no salga el html como adjunto, sino que cuando lo vaya a leer el cliente, ya vea directamente el archivo que le envío. Actualmente lo estoy haciendo seleccionando el archivo html como diseño de fondo pero me gustaría hacerlo automático desde delphi, gracias.
__________________
No hay vientos favorables para quién no conoce su rumbo.
Responder Con Cita
  #11  
Antiguo 27-06-2007
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
ahem....

http://www.clubdelphi.com/foros/showthread.php?t=18819
__________________

Responder Con Cita
  #12  
Antiguo 04-07-2007
Avatar de Nomad
Nomad Nomad is offline
Miembro
 
Registrado: abr 2007
Ubicación: Sarchi,Costa Rica
Posts: 107
Poder: 18
Nomad Va por buen camino
Problema

El problema que yo me encontre usando esto, es que no puedo cambiar la direccion de correo, subject o body en tiempo de ejecucion.
__________________
Quisiera cambiar el mundo, pero no me dan el código fuente.
Responder Con Cita
  #13  
Antiguo 05-08-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Reabro hilo

Muchachos, no es broma, pero me cansé de probar varios metodos aquí publicados para mandar un simple email con un archivo adjunto y no anda, no pido colores, negritas, italicas, nada de nada. Simplemente un email xxx@xxx.com con un PDF generado por mi sistema y no anda. Vi discusiones sobre outlook, bien, me abre el outlook con subject y todos los datos parametrizados pero y el adjunto... se lo llevaron los marcianos ???

El ShellExecute con adjuntos no anda(ó al menos no logré que ande), quien diga lo contrario pido la linea de codigo y la pruebo.

Gente, No puede ser que el sistema abra outlook, pone email, subject y que despues el usuario tenga que ir manualmente a buscar el archivo a adjuntar, esto es lamentable!

En fin Jose Manuel, si lograste hacerlo, pasame por favor el metodo u ejemplo, que será muy bien agradecido.

Muchas gracias!!! Walter del país de la 8 maravilla!!!
Responder Con Cita
  #14  
Antiguo 06-08-2007
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 [-]
  ShellExec(frmInicial.Handle,
  'open',
  'mailto:'+Trim(edtMail0.Text)+
  '?subject='+'Reporte de Servicio Diario'+
  '&body='+Body+
  CC+
  '&Attach="'+Archivo+'"',
  '',
  '',
  SW_SHOW);

STFW, RTFM
__________________

Responder Con Cita
  #15  
Antiguo 06-08-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
declaracion de variables

*Contraveneno*
Las variables Body, Archivo y CC son todas del tipo PChar ?
En tu ej. no veo conversiones de ningun tipo pero como concatenas las cadenas de caracteres sin errores ?

Yo no usaba ShellExec, sino ShellExecute, que esta sí la encontre en la ShellApI, estamos hablando de la misma función ?. No encontré en que unit está esta.

Sigo probando a ver que sale. Saludos y muchas gracias!!!
Responder Con Cita
  #16  
Antiguo 06-08-2007
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
archivo, body y cc son te tipo cadena... string en ingles...
__________________

Responder Con Cita
  #17  
Antiguo 06-08-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Nuevamente yo, y gracias por la paciencia

Acá te copio la rutina:

Var
MailTo:String;
Body:String;
Archivo:String;
CC:String;
begin
MailTo := 'war.ramos@yahoo.com';
Body := 'NOBODY(No Body)';
Archivo := 'c:\wall_cel_CBR600RR_176x220.jpg';
CC := 'waly2k1@hotmail.com';

ShellExecute( Self.Handle, 'open',
PChar(
'mailto:' + Trim( MailTo ) +
'?subject=' + 'Reporte de Servicio Diario' +
'&body=' + Body +
CC +
'&Attach="' + Archivo + '"'
),
'',
'',
SW_SHOW );

Esto es el resultado:
Destino, asunto está bien, el cuerpo queda así
NOBODY(No Body)waly2k1@hotmail.com

Si observas convierto toda la cadena de string a PChar(), sino no funciona
la copia CC aparece en el body, supongo porque no posee un indicador y no adjunta la imagen. Esto lo estoy probando con Outlook Express

Saludos y muchas gracias por tu tiempo.
Responder Con Cita
  #18  
Antiguo 06-08-2007
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
pues síguele probando, porque tal cual como lo puse yo, así lo estoy usando y nunca he tenido problemas para enviar un correo con un archivo adjunto.

Debes de tener el problema en algún otro lado, a mi me funciona perfectamente.
__________________

Responder Con Cita
  #19  
Antiguo 06-08-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Post To be continued...

Segun tu ejemplo en esta linea no te funcionaría salvo que nunca
uses CC, sino concatena al body el email q pasas en CC.

Código:
  '&body='+Body+
  CC+
solucion:

Código:
'&body=' + Body +
'&CC=' + CC +
el tercer parametro de la api es de tipo Pchar o sea que deberías
convertir antes de pasar toda la cadena, sino te da error y no
compila la aplicación.

El ejemplo de la web es de Outlook 2000, tengo 2003 y no funciona
tampoco en outlook express, mi SO Win2K SP4

Quedó bárbaro el codigo, pero simplemente no adjunta archivos.
Paso para que alguien vea y pueda echar una mano.
Saludos y gracias por el tiempo. Otra vez será!!!

Código:
procedure TfrmMain.mnuSendMail(Sender: TObject);
Var
    MailTo:String;
    Body:String;
    Archivo:String;
    CC:String;
begin
    MailTo := 'war.ramos@yahoo.com';
    Body := 'NOBODY(No Body)';
    Archivo := 'C:\Attachment.txt';
    CC := 'waly2k1@hotmail.com';

	// NOTA: Así quedó después de tantas idas y vueltas y no anduvo el attach
	ShellExecute( Handle, 'open',
        PChar(
		'mailto:' + Trim( MailTo ) +
	        '?subject=' + 'Reporte de Servicio Diario' +
		'&body=' + Body +
	        '&CC=' + CC +
		'&File=' + Archivo
        ),
	'',
	'',
	SW_SHOW );
end;
Responder Con Cita
  #20  
Antiguo 06-08-2007
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
el día que quieras, te invito a que pases a alguna computadora que este utilizando el sistema donde uso esa línea para que veas que si funciona...

tiene más de 1 año funcionando y enviando correos y hasta ahora no he recibido queja.

Claro, para llenar la variable CC, tengo un If en donde si existe correo alternativo, se agrega el '&CC = "dir-com"'', si no existe, entonces CC := '';

pensé que eso era obvio

pues estaremos hablando de cosas diferentes porque yo no lo cambio a pchar... como dije, así tal cuál puse el shellexec, el correo se envía con un archivo adjunto.
__________________

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pasar citas a Outlook 2003 aircraft API de Windows 0 03-07-2006 13:51:26
Enviar mail usando SMTP pero no OUTLOOK brandolin Internet 2 31-01-2006 03:32:30
Problema al enviar Email con adjuntos usando el componente Idsmtp de las indy Nbull Internet 2 22-11-2004 09:23:38
Enviar email a través de Outlook Express kambiz Internet 9 20-10-2004 22:58:12
Adjuntar fichero por E-Mail usando outlook? burasu Internet 0 05-08-2004 12:25:16


La franja horaria es GMT +2. Ahora son las 21:05:58.


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