Fecha y hora actual: Sab 31 Jul, 2010 06:15 am
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

VB6 - Enviar un correo mediante Outlook

Responder al Tema

Índice del Foro > Visual Basic y VBA > VB6 - Enviar un correo mediante Outlook

Autor Mensaje
Ferri
Usuario Iniciado


Registrado: 04 Nov 2009
Mensajes: 44
Ubicación: Granollers - Barcelona

Mensaje Publicado: Jue 28 Ene, 2010 19:31 pm

Título del mensaje: VB6 - Enviar un correo mediante Outlook

Responder citando

Tengo un programa que me envia por correo unos pdf que me genera automaticamente, pero cuando envio el correo se envia sin mas me gustaria que parese un segundo antes y que el usuario puediera ver el correo y fuera el que presionara el boton enviar.

Espero hacerme explicar.

Aqui la funcion que uso

Código:

Public Function MailTo(ByVal Dest As String, ByVal Subject As String, ByVal Body As String, Optional ByVal Adjunto As Integer) As Boolean
  On Error GoTo Err_MailTo
  Dim objOLMAIL As Object
  Dim objMAIL As Object
  Dim objATCH As Object
  Dim objDEST As Object
  Dim Cont, Max As Byte
  Dim correos() As String
  Cont = 0
  Max = 0

  Set objOLMAIL = CreateObject("Outlook.Application")
  Set objMAIL = objOLMAIL.CreateItem(0)
  objMAIL.Subject = Subject
  objMAIL.Body = Body

  Set objDEST = objMAIL.Recipients
  'preramose el tema para tener mas de un contacto
  Dest = Dest & ";"
  correos = Split(Dest, ";")
  Max = UBound(correos)
  While Cont < Max
    objDEST.Add correos(Cont)
    Cont = Cont + 1
  Wend
 
 
  If Not objDEST.ResolveAll Then
       MsgBox "Error en destinatario de correo " & Dest & "."
       GoTo Exit_MailTo
  End If

  If Adjunto > 0 Then
    Cont = 0
     Set objATCH = objMAIL.Attachments
        If Adjunto > 0 Then
            objATCH.Add PathPDF & frmEnviar.Text1(1).Text & "pdf.pdf"
            If Adjunto > 1 Then
                objATCH.Add PathPDF & frmEnviar.Text2(1).Text & "pdf.pdf"
                If Adjunto > 2 Then
                    objATCH.Add PathPDF & frmEnviar.Text3(1).Text & "pdf.pdf"
                    If Adjunto > 3 Then
                        objATCH.Add PathPDF & frmEnviar.Text4(1).Text & "pdf.pdf"
                        If Adjunto > 4 Then
                            objATCH.Add PathPDF & frmEnviar.Text5(1).Text & "pdf.pdf"
                            If Adjunto > 5 Then
                                objATCH.Add PathPDF & frmEnviar.Text6(1).Text & "pdf.pdf"
                                If Adjunto > 6 Then
                                    objATCH.Add PathPDF & frmEnviar.Text7(1).Text & "pdf.pdf"
                                    If Adjunto > 7 Then
                                        objATCH.Add PathPDF & frmEnviar.Text8(1).Text & "pdf.pdf"
                                        If Adjunto > 8 Then
                                            objATCH.Add PathPDF & frmEnviar.Text9(1).Text & "pdf.pdf"
                                            If Adjunto > 9 Then
                                                objATCH.Add PathPDF & frmEnviar.Text10(1).Text & "pdf.pdf"
                                                If Adjunto > 10 Then
                                                    objATCH.Add PathPDF & frmEnviar.Text11(1).Text & "pdf.pdf"
                                                    If Adjunto > 11 Then
                                                        objATCH.Add PathPDF & frmEnviar.Text12(1).Text & "pdf.pdf"
                                                        If Adjunto > 12 Then
                                                            objATCH.Add PathPDF & frmEnviar.Text13(1).Text & "pdf.pdf"
                                                            If Adjunto > 13 Then
                                                                objATCH.Add PathPDF & frmEnviar.Text14(1).Text & "pdf.pdf"
                                                                If Adjunto > 14 Then
                                                                    objATCH.Add PathPDF & frmEnviar.Text15(1).Text & "pdf.pdf"
                                                                End If
                                                            End If
                                                        End If
                                                    End If
                                                End If
                                            End If
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        End If
     'objATCH.Add Adjunto
  End If

  objMAIL.Send

  MailTo = True

Exit_MailTo:
  Set objDEST = Nothing
  Set objATCH = Nothing
  Set objMAIL = Nothing
  Set objOLMAIL = Nothing
  Exit Function

Err_MailTo:
  MsgBox Err.Description
  Resume Exit_MailTo

End Function

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 2002
Ubicación: Valencia - España

Mensaje Publicado: Vie 29 Ene, 2010 22:33 pm

Título del mensaje: Re: VB6 - Enviar un correo mediante Outlook

Responder citando

Hola Ferri, como andas¿? Guiño
Bueno, al grano. Creo que tu code se puede recortar en bastantes líneas, mira:

Tu repites constantemente una operación que es:
Código:
If Adjunto > x Then
            objATCH.Add PathPDF & frmEnviar.Text1(1).Text & "pdf.pdf"
            If Adjunto > 1 Then
                objATCH.Add PathPDF & frmEnviar.Text2(1).Text & "pdf.pdf"
....
....
.....
......

Si te das cuenta, tienes creada una matriz de controles de todos los txt y usas siempre la matriz 1. Si creas de un txt tantas matrices como necesites sel código se acortaría sustancialmente, mira:
Si la variable adjunto contiene un valor numérico del 0 al 14, creas esas 15 matrices del Text1(0).text, text1(1).text, ...
Y el code quedaría así:

Código:
objATCH.Add PathPDF & frmEnviar.Text1(adjunto).Text & "pdf.pdf"

Bueno, deberás afinarlo a tus necesidades.

Respecto a visualizar el contenido antes de enviar, no hay problema.
Si no te quieres comer el coco en exceso, crea un formulario de previsualización y dentro de el dos botones (Enviar, Cancelar) y un PictureBox con el fondo blanco y en el muestras el contenido del mensaje.

Espero que te sirva.


www.lospillaos.es
Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Ferri
Usuario Iniciado


Registrado: 04 Nov 2009
Mensajes: 44
Ubicación: Granollers - Barcelona

Mensaje Publicado: Lun 01 Feb, 2010 16:06 pm

Título del mensaje: Re: VB6 - Enviar un correo mediante Outlook

Responder citando

Tesis escribió:


Respecto a visualizar el contenido antes de enviar, no hay problema.
Si no te quieres comer el coco en exceso, crea un formulario de previsualización y dentro de el dos botones (Enviar, Cancelar) y un PictureBox con el fondo blanco y en el muestras el contenido del mensaje.

Espero que te sirva.


Gracias por tus comentarios los tendre en cuenta, respecto lo de la previsualizacion era lo que tenia pensado hacer si no encontraba algo mas corto. Asi que me pondre con ello.

Saludos y gracias Tesis

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Ferri
Usuario Iniciado


Registrado: 04 Nov 2009
Mensajes: 44
Ubicación: Granollers - Barcelona

Mensaje Publicado: Jue 04 Feb, 2010 17:04 pm

Título del mensaje: Re: VB6 - Enviar un correo mediante Outlook

Responder citando

He encontrado lo que queria



Código:

objMAIL.Send 'Envia directamente
objMAIL.Display 'Abre la ventana de nuevo correo
 


Tengo otra pregunta cuando envio un mail desde outlook siempre me sale un mensage que dice "Un programa quiere obtener informacion de su lista de correo..... quiere permitirlo"

Hay una forma de poner que si permanentemente para no tener que ir diciendo si.

PD. Si no me hago entender decidmelo y subo una screenshot

Saludos y gracias

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Enviar email Yahoo desde c#

thewalker C, C#, Visual C++ 9 Jue 24 Jun, 2010 08:20 am Ver último mensaje
El foro no contiene ningún mensaje nuevo

AYUD Asacar los hosts mediante ip de equipo y m...

Eamanesan Redes 0 Sab 22 May, 2010 21:34 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Ayuda para enviar correos desde VB

adrian15 Visual Basic .NET 0 Lun 22 Mar, 2010 21:03 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Enviar correo con Utl_Mail

nsperez Foro para otras bases de datos 1 Mar 02 Mar, 2010 21:07 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Problema con Outlook 2007

fercho Ofimática 4 Dom 22 Nov, 2009 22:04 pm Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,