|
| Autor |
Mensaje |
Ferri Usuario Iniciado
Registrado: 04 Nov 2009 Mensajes: 44 Ubicación: Granollers - Barcelona
|
Publicado: Jue 28 Ene, 2010 19:31 pm
Título del mensaje: VB6 - Enviar un correo mediante Outlook |
|
|
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 |
|
|
Tesis Administrador

Registrado: 04 Mar 2007 Mensajes: 2002 Ubicación: Valencia - España
|
Publicado: Vie 29 Ene, 2010 22:33 pm
Título del mensaje: Re: VB6 - Enviar un correo mediante Outlook |
|
|
Hola Ferri, como andas¿?
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 |
|
|
Ferri Usuario Iniciado
Registrado: 04 Nov 2009 Mensajes: 44 Ubicación: Granollers - Barcelona
|
Publicado: Lun 01 Feb, 2010 16:06 pm
Título del mensaje: Re: VB6 - Enviar un correo mediante Outlook |
|
|
| 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 |
|
|
Ferri Usuario Iniciado
Registrado: 04 Nov 2009 Mensajes: 44 Ubicación: Granollers - Barcelona
|
Publicado: Jue 04 Feb, 2010 17:04 pm
Título del mensaje: Re: VB6 - Enviar un correo mediante Outlook |
|
|
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 |
|
|