** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - enviar email desde varios correos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoenviar email desde varios correos

 Responder Responder
Autor
Mensaje
matmax1 Ver desplegable
Habitual
Habitual
Avatar

Unido: 16/Abril/2006
Estado: Sin conexión
Puntos: 95
Enlace directo a este mensaje Tema: enviar email desde varios correos
    Enviado: 15/Septiembre/2022 a las 18:56
Buenas tares, estoy intentando enviar un email con archivo adjunto (pdfs), desde varias direcciones de correo que tengo añadidas en el outlook y en la aplicación, según sea el correo de origen , es decir un email desde desde la cuenta correo1@gmail.com o la cuenta correo2@gmail.com. En el outlook tengo las 2 cuentas añadidas y una de ellas es predeterminada. Cuando intemto enviar un correo con la cuenta2, a la hora de ver el correo antes de enviarlo, las cuentas de coreo de origen están correctamente añadidas (correo2), pero al darle a enviar, se cambia a la cuenta predeterminada (cuenta1). Por ejemplo, si envió un email desde correo2@gmail.com, al darle a enviar y consultar si el email se envió desde la cuenta2, veo que lo envió desde la cuenta1. No se si es problema del código o del outlook. 
Este es el código que utilizo.
 
Private Sub enviarCorreo()
     Dim cRespu, ARCH, DAM2, cuerpo  'indice,
     Dim cCorreoOrigen, cCorreoDestino
        cRespu = MsgBox("DESEA ENVIAR ESTA VENTA (" & rsImpMovim("CAMPO2") & ") AL CORREO " & DLookup("E_MAIL", "MOVIM", "MOVIMIENTO= " & rsImpMovim("CAMPO2")), vbYesNo + vbInformation + vbDefaultButton2)
        If cRespu = vbYes Then
            ARCH = Dir("*.*")
            Set DAM2 = CreateObject("outlook.application").CreateItem(0)
            
    'correo empresas
            cCorreoOrigen = DLookup("EMAIL", "EMPRESA", "NOMBRE= '" & rsImpMovim("empresa") & "'")  
            DAM2.SentOnBehalfOfName = cCorreoOrigen ' o cuenta1 o cuenta2
            
    'correo cliente
            cCorreoDestino = DLookup("E_MAIL", "MOVIM", "MOVIMIENTO= " & rsImpMovim("correo")) Miguel@gmail.com
            DAM2.To = cCorreoDestino
            
      DAM2.Subject = Trim(rsImpMovim("asunto")) & "€"

            cuerpo = "Estimado cliente " & Chr(13) & _
            "Adjunto envio facturas pendientes que tendra que pagar a la mayor brevedad posible." 
            DAM2.Body = cuerpo         '"Cuerpo del mensaje"

            Do While ARCH <> ""
                DAM2.Attachments.Add mypath3 & "\" & ARCH
                ARCH = Dir()
            Loop
            DAM2.Display 'El correo se muestra
        End If
End Sub

¿Alguien me puede ayudar con este problema?, Gracias.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3859
Enlace directo a este mensaje Enviado: 16/Septiembre/2022 a las 09:39
Mira a ver...

https://www.slipstick.com/developer/code-samples/send-email-address-vba/
El Búho es un pajarraco
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14734
Enlace directo a este mensaje Enviado: 16/Septiembre/2022 a las 11:01
Hola,

Es un pelin distinto. Tu estás intentando el SentOnBehalfOnName (Enviar en nombre de) cuando lo que quieres es utilizar otra cuenta (SendUsingAccount)

El "problema" radica en como realizar la asignación de esa cuenta. La única forma que he encontrado es recorrer la colección de Accounts de la sesión de Outlook hasta encontrar la dirección que quieres utilizar y asignarla al SendUsingAccount del objeto Outlook.MailItem

Este pedazo de código esta copiado de una aplicación que tengo:

If uMailHeader.From <> "" Then
    For Each olkAccount In olkApp.Application.Session.Accounts
        If olkAccount.SmtpAddress = uMailHeader.From Then
            ' La asignación del SendUsingAccount varía si se utiliza la librería o no
            #If UseOL_OLK Then
                olkMail.SendUsingAccount = olkAccount
            #Else
                Set olkMailItem.SendUsingAccount = olkAccount
            #End If
            Exit For
        End If
    Next
End If

uMailHeader es una estructura Type dónde almaceno las variables de cabecera de un Mail. Entre otras cosas tengo la dirección desde la que quiero mandar el mail (si está en blanco tomará la predeterminada)
olkAccount es una variable de tipo Outlook.Account (si tienes la referencia a la biblioteca de Outlook) o Variant (si no la tienes)
olkApp es una variable de tipo Outlook.Application o Object
UseOL_OLK es una constante de compilación condicional que indica si mi aplicación tiene la referencia a la biblioteca de Outlook o no

Este último punto es relevante porque, como se ve en el código, la forma de asignar la propiedad SendUsingAccount es distinta con o sin referencia.

Creo que no me dejo nada.

PD: Luis, el link no me funciona. Dice "Ahora mismo la página no está disponible". De todas formas no la conocía y parece una muy buena página para temas de Outlook. Gracias!

Un saludo

Xavi, un minyó de Terrassa

Mi web
Arriba
matmax1 Ver desplegable
Habitual
Habitual
Avatar

Unido: 16/Abril/2006
Estado: Sin conexión
Puntos: 95
Enlace directo a este mensaje Enviado: 16/Septiembre/2022 a las 12:10
Muchisimas gracias por tu respuesta pero tengo una duda, ¿Como le paso el correo de la cuenta desde la cual yo quiero que se envie el email con su factura?, Es decir, yo quiero enviar desde el correo2, en lugar del correo1 que es el predeterminado en outlook, Gracias
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14734
Enlace directo a este mensaje Enviado: 16/Septiembre/2022 a las 12:20
En lo que yo llamo uMailHeader.From, le asignas la dirección desde la que quieres que se utilice: correo2@gmail.com

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
matmax1 Ver desplegable
Habitual
Habitual
Avatar

Unido: 16/Abril/2006
Estado: Sin conexión
Puntos: 95
Enlace directo a este mensaje Enviado: 10/Septiembre/2023 a las 19:43
SOLUCIONADO
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable