Visual Basic - Enviar e-mail

Life is soft - evento anual de software empresarial
 
Vista:

Enviar e-mail

Publicado por Diego Campillo (17 intervenciones) el 18/09/2001 08:02:05
Hola a todos, estoy intentando hacer algo tan sencillo como hacer saltar la ventana del cliente de correo (outlook, o el que fuese), con la dirección del destinatario ya escrita en el campo Para, y a ser posible también en CC.
REsumiendo algo parecido a cuando en una página web pinchas en un hipervínculo de correo, pero en esta ocasión en Visual Basic.
Gracias por vuestra colaboración.
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 e-mail

Publicado por bla (230 intervenciones) el 18/09/2001 12:20:48
Debes determinar el cliente de correo que posee (el cómo es una buena pregunta) y después hacer algo como esto.

Dim oOutlook As Variant
Dim oMail As Variant
Set oOutlook = CreateObject("Outlook.Application")
Set oMail = oOutlook.CreateItem(0)
oMail.To = "[email protected]"
oMail.Subject = "Subject"
oMail.CC = "[email protected]"
oMail.Display

Obs: Dará un error al crear el objeto si no tiene instalado Outlook
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 e-mail

Publicado por Alvaro Olea (9 intervenciones) el 18/09/2001 12:49:32
Primero tienes que crear en el formulario los botones:
MAPIMessages
MAPISession
(están al crear un formulario en modo avanzado, son como un sobre con un papel y un bozon pequeñito y plano)
Luego creas un botón y cliqueas dos vezes sobre el, y luego escribes:

Private Sub Command1_Click()
'inicio la sisión MAPI
señal.SignOn

correo.SessionID = señal.SessionID

' redaccion de un mensaje
correo.Compose
' dirige el mensaje
correo.RecipDisplayName = "Nombre destinatario"
correo.RecipAddress = "Correo Destinatario"

'crea el mensaje
correo.MsgSubject = "Asunto"
correo.MsgNoteText = "Texto del mensaje"
' envío del mensaje
correo.Send False

señal.SignOff
End Sub

Si consultas la ayuda sobre objetos MAPI te dicen como enviar archivos adjuntos, reenviar correo, etc...
Por defecto te abrirá el que tengas instalado.
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 e-mail

Publicado por bla (230 intervenciones) el 20/09/2001 18:22:49
Con CreateObject, no necesitas ninguna referencia pero si necesitas disponer del archivo msoutl85.olb
Si quieres hacerlo con referencias sustituye las definiciones por:
Dim oOutlook As New Outlook.Application
Dim oMail As Outlook.MailItem
y elimina la linea del CreateObject (Ahora se realiza con New). Esto además te permitirá disponer de la ayuda rápida del editor de VB
Tendrías que referenciar:
Reference=*\\G{00062FFF-0000-0000-C000-000000000046}#8.5#0#..\\..\\ARCHIVOS DE PROGRAMA\\MICROSOFT OFFICE\\OFFICE\\msoutl85.olb#Outlook 98 Type Library (Puede venir descrita como Modelo de objetos de Microsoft Outlook 98, o como Outlook 98 Type Library)

Revisa tus referencias, seguro que hay alguna para el Express no muy diferente.

P.D. No he probado la respuesta de Álvaro, pero si funciona es preferible la suya salvo que conozcas el software de todos los ordenadores clientes (como en una intranet), lo que te permitiría mucha flexibilidad.
Saludos
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 e-mail

Publicado por Diego Campillo (17 intervenciones) el 18/09/2001 13:39:12
Muchas gracias a Alvaro y a Bla, y por supuesto a todos los del foro por la ayuda prestada, me presentais dos formas de enviar correo, aunque me gustaria que Bla me pudiese especificar si necesito activar algura referencia, ya que tu código al ejecutar me da el siguiente mensaje de error:

Error 429 en tiempo de ejecución

El componente ActiveX no puede crear el objeto

y el error salta en la línea:

Set oOutlook = CreateObject("Outlook.Application")

Eso si, se que me comentas que necesita el Outlook, lo que no se si es el Outlook 97 o el Outlook Express. Yo tengo el Express.

Gracias de todos modos. Nos vemos.
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