Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Macro envío mails

379 views
Skip to first unread message

lbenaventea

unread,
Aug 12, 2005, 11:49:31 AM8/12/05
to
Repasé las preguntas y respuestas del foro, las ayudas y los sitios donde
explican cómo enviar mails pero no encontré respuestas a lo más simple: una
macro para el envío de mails con texto, archivo adjunto, con copia, con copia
oculta y con acuse de recibo (es decir, lo más clásico aunque masivo):
1) Muchos "clientes" y cada cliente con 1, 2 ó 3 casillas distintas (que
irán en «Para»);
2) Cada envío con un archivo Excel adjunto (todos distintos);
3) Para cada destinatario, un texto idéntico en el cuerpo del mensaje;
4) Cada mensaje con una "copia abierta" y una "copia oculta" (a la misma
casilla en cada caso);
5) Tdos los mensajes con acuse de recepción.
Les agradece,
LB

Héctor Miguel

unread,
Aug 12, 2005, 6:13:29 PM8/12/05
to
hola, lbenaventea !

> Repase las preguntas y respuestas del foro, las ayudas y los sitios donde explican como enviar mails
> pero no encontre respuestas a lo mas simple:
> una macro para el envio de mails con texto, archivo adjunto, con copia, con copia oculta y con acuse de recibo
> (es decir, lo mas clasico aunque masivo):
> 1) Muchos "clientes" y cada cliente con 1, 2 o 3 casillas distintas (que iran en Para);
> 2) Cada envio con un archivo Excel adjunto (todos distintos);
> 3) Para cada destinatario, un texto identico en el cuerpo del mensaje;


> 4) Cada mensaje con una "copia abierta" y una "copia oculta" (a la misma casilla en cada caso);

> 5) Todos los mensajes con acuse de recepcion.

-> ciertamente que lo que solicitas/necesitas puede considerarse como 'lo mas simple y clasico'...
[siempre y cuando lo ejecutes desde la misma interfase grafica de tu programa de correos electronicos] :)
-> para estar 'en condiciones' de hacer 'lo mismo' pero... por codigo...
[hasta donde se] la mejor alternativa es utlizar 'servidores' que tengan soporte para vba [como outlook]
-> [en tanto comentas mayores detalles]...
te sugiero visitar la pagina de Ron de Bruin [especificamente la seccion de 'envios'] <-
http://www.rondebruin.nl/sendmail.htm
donde podras 'navegar' para conocer otras opciones como:
- CDO [sin mensajes de advertencia] no 'requiere' de un servidor de correo 'instalado' o...
- Outlook-Express [amigable aunque con poco 'soporte' para trabajarlo en vba] o...
- Outlook [de office] que resulta mucho mas 'amigable'
incluso... puedes 'descargar' un complemento para tus envios 'directos' desde excel en:
http://www.rondebruin.nl/mail/add-in.htm

saludos,
hector.


lbenaventea

unread,
Aug 13, 2005, 4:29:03 PM8/13/05
to
Gracias, Héctor, pero la página de de Bruin no me dio la respuesta. En mi
caso, uso Outlook Express y supongo que habrá una manera de indicar lo que
pido: destinatario, copia simple, copia oculta, acuse de recibo y texto. Y no
debe ser muy difícl: con sendmail logro bastante pero no todo...
Gracias, nuevamente, a ver si alguien me da respuestas excatas.
Luis B.

"Héctor Miguel" escribió:

KL

unread,
Aug 13, 2005, 4:52:09 PM8/13/05
to
Hola lbenaventea,

Creo que esta pagina de la web de Ron de Bruin contesta todas tus preguntas:
http://www.rondebruin.nl/cdo.htm#Tips

Saludos,
KL


"lbenaventea" <lbena...@discussions.microsoft.com> wrote in message
news:84B25BA9-5FD4-4E94...@microsoft.com...
> Repase las preguntas y respuestas del foro, las ayudas y los sitios donde
> explican como enviar mails pero no encontre respuestas a lo mas simple:
> una
> macro para el envio de mails con texto, archivo adjunto, con copia, con
> copia
> oculta y con acuse de recibo (es decir, lo mas clasico aunque masivo):


> 1) Muchos "clientes" y cada cliente con 1, 2 o 3 casillas distintas (que

> iran en <Para>);
> 2) Cada envio con un archivo Excel adjunto (todos distintos);
> 3) Para cada destinatario, un texto identico en el cuerpo del mensaje;


> 4) Cada mensaje con una "copia abierta" y una "copia oculta" (a la misma
> casilla en cada caso);

> 5) Tdos los mensajes con acuse de recepcion.
> Les agradece,
> LB
>


Héctor Miguel

unread,
Aug 13, 2005, 7:56:03 PM8/13/05
to
hola, Luis B !

> ... la pagina de de Bruin no me dio la respuesta.
> ... uso Outlook Express y supongo que habra una manera de indicar lo que pido:
> destinatario, copia simple, copia oculta, acuse de recibo y texto. Y no debe ser muy dificl:


> con sendmail logro bastante pero no todo...

> ... a ver si alguien me da respuestas excatas.

'tengo que'... 'insistirte'... en que repases las alternativas que te ofrece la pagina de Ron :))
-> [concretamente] con la alternativa CDO 'no importa' si tienes OE... OL... o cualquiera otro
-> lo que pides [destinatario, copia simple, copia oculta, acuse de recibo y texto] esta 'cubierto' ahi ;)
-> si 'persistes' en hacerlo por OE... ['simple y llanamente']... OE no tiene 'soporte' para 'todo eso' :-(
-> si no encuentras [exctamente] lo que necesitas -> 'desde' la pagina de Ron ... [no se donde podras] :)

saludos,
hector.


lbenaventea

unread,
Aug 16, 2005, 11:05:09 AM8/16/05
to
Héctor Miguel y KL:
Les agradezco vuestra sugerencia de estudiar la página de Ron pero no me ha
servido: siempre aparece algún error de sintaxis que no logro resolver para
hacer mis envíos por Outlook Express en circunstancias que parece tan fácil
completar algo que contenga:

To = "ful...@xx.com.cl"
CC = "zut...@zz.com"
BCC = "pere...@ww.com"
From = """Luis Benavente A."" <lbena...@hotmail.com>"
Subject = "Envío antecedentes"
TextBody = "Ruego revisar los antecedentes adjuntos. Atentamente,
Depto. Jurídico."
AddAttachment "D:\documentos\Estudios.xls"
Send
En fin, si tienen la solución, se lo agradezco de antemano,
Luis B.

"Héctor Miguel" escribió:

> hola, Luis B !

Héctor Miguel

unread,
Aug 16, 2005, 8:34:39 PM8/16/05
to
hola, Luis !

> ... estudiar la pagina de Ron... no me ha servido
> ... siempre aparece algun error de sintaxis que no logro resolver para hacer mis envios por Outlook Express
> ... circunstancias que parece tan facil completar algo que contenga:


> To = "ful...@xx.com.cl"
> CC = "zut...@zz.com"
> BCC = "pere...@ww.com"
> From = """Luis Benavente A."" <lbena...@hotmail.com>"

> Subject = "Envio antecedentes"
> TextBody = "Ruego revisar los antecedentes adjuntos. Atentamente, Depto. Juridico."


> AddAttachment "D:\documentos\Estudios.xls"
> Send

> ... si tienen la solucion, se lo agradezco de antemano

1) Outlook Express... [huummm!!!]
el [unico] 'problema' que le veo a tus intenciones... es la 'insistencia' por usar [solamente] Outlook Express :-((
puesto que NO 'expone' su modelo de objetos... es muy dificil 'trabajarlo' desde codigos por vba :-\
podrias 'ahondar' en el tema si te das una vuelta por las siguientes conversaciones: http://tinyurl.com/dceay

-> [cambie mi servidor de correos de Office Outlook -> a -> Outlook Express] y...
'lo mas' que he podido lograr con Outlook Express [de acuerdo con los puntos que solicitas]...
es 'aplicarlos' todos ellos [To, CC, BCC, Subject,...] EXCEPTO... el 'From' Y... el 'Attachment' =>NO desde vba<= :-((
[ademas]... para el 'Send' se 'truquea' usando el metodo 'SendKeys' [probablemente seria igual para el adjunto] -?-

2) el modelo de objetos de Outlook [NO el Express]... SI es totalmente 'compatible' con procedimientos vba :))

3) CDO ['Collaboration Data Objects']... de la pagina de Ron... el ejemplo que te pongo al final me ha funcionado perfectamente
usando TODOS los requisitos que planteas... ->To/CC/BCC/From/Subject/Body/Attachment/Send<- ;)
NO 'aprovecha' el programa/servidor de correos que tengas instalado sino una conexion 'directa' a internet
el ejemplo es una 'adaptacion' de su pagina: http://www.rondebruin.nl/cdo.htm#Workbook
dentro de los errores que pude 'detectar'...
a) no tener una cuenta de correos 'dada de alta' en Outlook Express :-\
[se requiere de los servidores de conexion de tu proveedor de internet pop3 / smtp] <= OJO
b) usar una direccion 'NO reconocida' por tu proveedor de servicios de internet...
[p.e. ->From = """Luis Benavente A."" <lbena...@hotmail.com>"<-]

4) otra alternativa seria si te decides y 'aprovechas' [alg]uno de sus complementos en: http://www.rondebruin.nl/mail/add-in.htm

bueno... haz alguas pruebas y... comentas?
saludos,
hector.

1) usando [o tratando de usar] Outlook Express... [ya sabes 'hasta donde llega' su control por vba] :))
REQUIERE hacer una llamada a las API's de windows...
=== en un modulo de codigo normal ===
Private Declare Function Ejecuta Lib "Shell32.dll" Alias "ShellExecuteA" ( _
ByVal Ventana As Long, ByVal Operacion As String, ByVal Archivo As String, _
ByVal Parametros As String, ByVal Directorio As String, ByVal Mostrar As Long) As Long
Sub Enviar_Correo()
Dim Para As String, Copia As String, Oculta As String, _
Asunto As String, Texto As String, Adjunto As String, _
Opciones As String, Instrucciones As String
Para = "cuenta_1@dominio.1"
Copia = "cuenta_2@dominio.2"
Oculta = "cuenta_3@dominio.3"
Asunto = "Este es el asunto..."
Texto = "Este es el cuerpo del mensaje"
Adjunto = "C:\Ruta y\sub-Carpetas al\Archivo.XYZ"
If Para = "" Then Exit Sub Else Para = "MailTo:" & Para
If Copia <> "" Then Opciones = "&CC=" & Copia
If Oculta <> "" Then Opciones = Opciones & "&BCC=" & Oculta
If Asunto <> "" Then Opciones = Opciones & "&Subject=" & Asunto
If Adjunto <> "" Then Opciones = Opciones & "&Attachment=" & vbCr & Adjunto & vbCr
If Texto <> "" Then Opciones = Opciones & "&Body=" & Texto
If Opciones <> "" Then Mid(Opciones, 1, 1) = "?"
Instrucciones = Para & Opciones
Ejecuta 0&, vbNullString, Instrucciones, vbNullString, vbNullString, 1
End Sub

2) usando CDO [no le duele -casi- nada] :))
las lineas 'comentadas' son por si... hiciera falta 'configurar' el CDO [a falta de configuracion en OE]
=== en un modulo de codigo normal ===
Private Sub Enviar_Archivos_CDO()
Dim Configura As Object ', Campos
Application.ScreenUpdating = False
Set Configura = CreateObject("CDO.Configuration")
' Configura.Load -1 ' restablece la configuracion por omision '
' Set Campos = Configura.Fields
' With Campos
' .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
' .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "aqui.tu.ISP.REAL"
' .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
' .Update
' End With
With CreateObject("CDO.Message")
Set .Configuration = Configura
.To = "cuenta_1@dominio.1"
.CC = "cuenta_2@dominio.2"
.BCC = "cuenta_3@dominio.3"
.From = """Alguien"" <tu_c...@y.dominios.REALES>"
.Subject = "Este es el asunto..."
.TextBody = "Este es el cuerpo del mensaje"
.AddAttachment "C:\Ruta y\sub-Carpetas al\Archivo.XYZ"
.Send
End With
Set Configura = Nothing
' Set Campos = Nothing
End Sub


0 new messages