Visual Basic.NET - Correo predeterminado

 
Vista:

Correo predeterminado

Publicado por egono (3 intervenciones) el 14/08/2008 16:06:23
Buenas...

No encuentro por ningún lado como hacer para abrir la clasica ventana de "enviar a" de Outlook Express o de Office Outlook, según cual sea el predeterminado, con un archivo adjunto.

Logre hacerlo para Office Outlook agregando una referencia a Microsoft Outlook y con el siguiente código:

Dim oOutlook As Microsoft.Office.Interop.Outlook.Application = Nothing
Dim oMail As Microsoft.Office.Interop.Outlook.MailItem = Nothing

oOutlook = New Microsoft.Office.Interop.Outlook.Application
oMail = CType(oOutlook.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem), Microsoft.Office.Interop.Outlook.MailItem)

oMail.Importance = Microsoft.Office.Interop.Outlook.OlImportance.olImportanceNormal
oMail.Attachments.Add(PathFile)
oMail.Display()

Lo que necesito es abrir esa ventana pero del cliente de correo predeterminado; y no logro abrir la del Outlook Express.

Muchas gracias, abrazos!
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:Correo predeterminado

Publicado por lea (1 intervención) el 15/08/2008 01:59:47
Tengo el mismo problema, necesito abrir la ventana de enviar a del cliente de correo electronico predeterminado, con un archivo adjunto.

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:Correo predeterminado

Publicado por egono (3 intervenciones) el 15/08/2008 21:22:57
Buscando, probando, buscando y probando encontre la solución.

La solución mas fácil er usar mailto ( Process.start("mailto:") ), ya que abre la ventana de "correo nuevo" o "enviar a" del cliente de correo electronico predeterminado; pero el inconveniente que tiene es que no permite pasar como parametro archivos adjuntos, se puede pasar el destinatario, el asunto, el cuerpo del mensaje pero no archivos adjuntos.

Process.start("mailto:[email protected]?subject=asunto&Body=cuerpo del mensaje")

Como la referencia a Microsoft Outlook solo permite manejar el Office Outlook y no encontre nada que me permita manejar el cliente de correo cualquiera sea, lo resolvi de la siguiente forma:

Obtengo del registro de windows el cliente de correo predeterminado:

Imports Microsoft.Win32

Dim oReg As RegistryKey = Registry.ClassesRoot.OpenSubKey("mailtoshellopencommand", False)

Si el cliente es Outlook hago lo que comente en el primer mensaje; si el cliente es Outlook Express hago lo siguiente:

Imports MSMAPI

Dim oOutlookExpressSession As MAPISession = New MAPISession
Dim oOutlookExpressMessages As MAPIMessages = New MAPIMessages

oOutlookExpressSession.SignOn()

With oOutlookExpressMessages
.SessionID = oOutlookExpressSession.SessionID
.MsgIndex = -1 'Nuevo mensaje
.AttachmentPathName = PathFile
.Send(True)
.SignOff()
End With

Agregando previamente referencia a Mapi Controls.

Si alguien conoce como hacer todo esto de otra forma agradeceria que lo explique.

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