FoxPro/Visual FoxPro - Enviar correo por MS Outlook

 
Vista:
sin imagen de perfil

Enviar correo por MS Outlook

Publicado por Gilberto (16 intervenciones) el 03/06/2010 17:03:15
Buen dia compañeros de la Web, tengo un inconveniente al enviar correos a traves de Microsoft Outlook 2003 y 2007.

Estoy usando el comando "Outlook.Aplication", funciona muy bien para enviar correos a traves de Microsoft Outlook, el problema es que me los envia de inmediato, realice una pantallita para poder colocarle asunto, archivos adjuntos y todo lo demas, el problema que tengo es que cuando coloco mas de una dirección me arroja error porque me manda todo el texto como una sola dirección, como puedo hacer para enviar un correo a varios detinatarios sin que arroje error, de lo contrario me tocaria uno po uno, el codigo es el siguiente:

Local lcperfil As Character, lccontrasenia As Character , ;
lcdestinatario As Character, lctema As Character , ;
lccuerpo As Character, lcarjunto As Character

Local looutlook As "Outlook.Application", ;
lonamespace As Object, lomailitem As Object

#Define lf_cr Chr(10)+Chr(13)

*-- Datos del Mail
lcperfil = "Outlook"
lccontrasenia = "outlook"

lcdestinatario = Alltrim(Thisform.txtpara.Value) &&& *** Aca es donde tengo el problema cuando coloco mas de una direccion separada por punto y coma ****

lctema = Alltrim(Thisform.txtasunto.Value)

lccuerpo = Thisform.txtcuerpo.Value

*-- Creo objetos Outlook y NameSpace

strpath="archivo adjunto.doc"
looutlook = Createobject("Outlook.Application")
lonamespace = looutlook.getnamespace("MAPI")

*-- Ejecuto los métodos
lonamespace.logon(lcperfil , lccontrasenia)
lomailitem = looutlook.createitem(0)
lomailitem.recipients.Add(lcdestinatario) &&&& ***** para aplicar aca las direcciones
lomailitem.attachments.Add(strpath)
lomailitem.subject = lctema
lomailitem.body = lccuerpo
lomailitem.Send
lonamespace.logoff

lonamespace = .Null.
looutlook = .Null.

Nota: No me pidan que use el MAPI de Outlook Express no funciona para MS Outlook, que si puedo detener el correo, o si saben como mostrarlo antes de darle enviar.

Gracias

GILBERTO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Enviar correo por MS Outlook

Publicado por Ana (15 intervenciones) el 04/06/2010 23:50:00
Debes insertar uno a uno los destinatarios, no todos juntos. Se creará un arreglo por cada destinatario.

Por ejemplo: Si los tienes en una tabla destinos.dbf con el campo e_mail que tiene los correos de los destinatarios.

sele destino
scan
scatter memvar
loMailItem.Recipients.ADD(m.e_mail)
endscan

Para que no se envíen automáticamente debes DESHABILITAR en OUTLOOK la opción:
Herramientas/Opciones/Configuración de Correo/Enviar inmediatamente durante la conexión.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar correo por MS Outlook

Publicado por carlos (3 intervenciones) el 24/04/2011 17:53:58
repite esta linea cuantas destinatarios tengas, es decir, no concatenes a tus destinatarios, sino
agregalo n veces

lomailitem.recipients.Add(lcdestinatario)

osea :

lomailitem.recipients.Add(lcdestinatario1)
lomailitem.recipients.Add(lcdestinatario2)
lomailitem.recipients.Add(lcdestinatario3)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Enviar correo por MS Outlook

Publicado por Alex Bazan (1 intervención) el 23/01/2020 17:32:15
Gracias muy buena explicación

Aqui se pone el mismo ejemplo pero para poder enviar un correo unico a cada usuario de una tabla con 3 correos.
Espero les sirva

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Local lcperfil As Character, lccontrasenia As Character , ;
lcdestinatario As Character, lctema As Character , ;
lccuerpo As Character, lcarjunto As Character
 
Local looutlook As "Outlook.Application", ;
lonamespace As Object, lomailitem As Object
 
#Define lf_cr Chr(10)+Chr(13)
 
*Tengo una Tabla Destinos con un campo llamado email c(50), con 3 registros
Select Destinos
 
FOR Ax = 1 TO 3
 
GO Ax
 
*-- Datos del Mail
lcperfil = "Outlook"
lccontrasenia = "outlook"
 
 
*lctema = Alltrim(Thisform.txtasunto.Value)
lctema = "Prueba de Correo a cada usuario"
 
*lccuerpo = Thisform.txtcuerpo.Value
lccuerpo = "esto de una prueba de envio de correo a cada usuario"
 
*-- Creo objetos Outlook y NameSpace
 
strpath="E:\DATOS ENVIADOS\23_01_20\detalle.xls" && Aqui debe ser una variable conteniendo la ruta del archivo pdf con la comision del Pv.
 
looutlook = Createobject("Outlook.Application")
lonamespace = looutlook.getnamespace("MAPI")
 
*-- Ejecuto los métodos
lonamespace.logon(lcperfil , lccontrasenia)
lomailitem = looutlook.createitem(0)
 
loMailItem.Recipients.ADD(destinos.email)
 
lomailitem.attachments.Add(strpath)
lomailitem.subject = lctema
lomailitem.body = lccuerpo
lomailitem.Send
lonamespace.logoff
 
lonamespace = .Null.
looutlook = .Null.
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar