Enviar firma -imagen a correo por access |
Responder | Página 12> |
Autor | |
Zuesangel
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 13/Septiembre/2011 Localización: Guatemala Estado: Sin conexión Puntos: 151 |
Tema: Enviar firma -imagen a correo por access Enviado: 02/Febrero/2022 a las 23:28 |
Buenos tardes compañeros estoy con un inconveniente sobre como enviar mi firma, desde el cuerpo de correo desde access pero mi firma es una imagen . He estado haciendo algunas pruebas con este codigo pero no he encontrado la manera ya que si lo envia pero solamente la dirección de la imagen o el path de la imagen no se visualiza la imagen de la firma en el cuerpo del correo:
Dim oApp As Outlook.Application Dim oMail As Outlook.MailItem Const pathImage As String = "C:\Users\User\Downloads\Emails\Image\firma.jpeg" If Me.emailUsuario <> "" Then Set oApp = CreateObject("Outlook.Application") Set oMail = oApp.CreateItem(olMailItem) With oMail .To = Me.emailUsuario .CC = Me.email_super .Subject = Nz(Me.Asunto, "") .Body = Nz(Me.Body, "") .HTMLBody = .HTMLBody & pathImage .Display .Send End With Set oApp = Nothing EnvioEmail = True De antemano muchas gracias por su atención y ayuda. |
|
Has el Bien y no mires a quien
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 03/Febrero/2022 a las 00:29 |
Hola,
Si tu Outlook tiene configurada la firma, entonces veo varias cosas que creo que debes cambiar 1. Inspector. Después del Set oMail hay que asignar un Inspector. Para declararlo Dim oInspector As Outlook.Inspector Para asignarlo Set olnspector = oMail.GetInspector No recuerdo exactamente el motivo del porque se declara pero es como si hiciera un "Display" sin hacerlo y tiene acceso al mail. Cuando pasa eso, el HTMLBody del MailItem contiene la firma. 2. Si es un correo HTML, indícalo oMail.BodyFormat = olfFormatHTML 3. Y si sigue siendo un HTML, el utilízalo oMail.HTMLBody = Nz(Me!Body, "") & oMail.HTMLBody (esta línea es la segunda clave: tomas tu texto y lo unes a lo que hubiera... o sea: la firma) La linea de .Body no sirve para nada en este escenario, así como la constante del pathimage . Haz pruebas y nos cuentas que tal Un saludo |
|
Zuesangel
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 13/Septiembre/2011 Localización: Guatemala Estado: Sin conexión Puntos: 151 |
Enviado: 03/Febrero/2022 a las 02:39 |
Buenas Noches xavi , gracias por tu informacion, he estado haciendo algunas pruebas pero me sale errores.
If Me.emailUsuario <> "" Then Set oApp = CreateObject("Outlook.Application") Set oMail = oApp.CreateItem(olMailItem) Set olnspector = oMail.GetInspector With oMail .To = Me.emailUsuario .CC = Me.email_super .Subject = Nz(Me.Asunto, "") .Body = Nz(Me.Body, "") .HTMLBody = "<img src='C:\Users\MiguelAngel\Downloads\Emails\Image\firma.jpeg'" & "width='814' height='33'><br>" .Send End With Set oApp = Nothing EnvioEmail = True no se si lo estare haciendo mal, pero con : oMail.BodyFormat = olfFormatHTML , no me lo deja enviar , asi que lo omite y solo envie este codigo como se mira arriba pero tampoco funciono. talvez tengas algun ejemplo? para ver como se aplicaria el codigo. de antemano muchas gracias . |
|
Has el Bien y no mires a quien
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 03/Febrero/2022 a las 07:49 |
1. Escribir al vuelo tiene sus cosas. En esa constante se me coló una f de mas. Es olFormatHTML
2. Para que funcione debes hacer Display + Send (yo pensaba que no pero las pruebas demuestran que si) Un saludo
|
|
Zuesangel
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 13/Septiembre/2011 Localización: Guatemala Estado: Sin conexión Puntos: 151 |
Enviado: 05/Febrero/2022 a las 00:21 |
Nuevamente gracias, pero ahora no me envía el correo. Este es el código que tengo corrígeme se tengo algo malo y deplano que si ya que no me funciona, si me haces el favor :
With oMail .To = Me.emailUsuario .CC = Me.email_super .Subject = Nz(Me.Asunto, "") .Body = Nz(Me.Body, "") .BodyFormat = olFormatHTML .HTMLBody = "<HTML><img src='C:\Users\usuario\Downloads\Emails\Image\firma.jpeg'" & "width='814' height='33'><br></HTML>" .Display .Send End With o talvez si me envías algún ejemplo para ver como se aplica el código, si no es mucha molestia. disculpa que soy algo novato en esto.
|
|
Has el Bien y no mires a quien
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 05/Febrero/2022 a las 00:51 |
No tengo ningún ejemplo hecho que pueda pasarte.
Mi consejo es que leas un poco mejor lo que se te dice. Te he puesto varias cosas que no parece que apliques. 1. No veo la declaración de variables (Outlook.Application, Outlook.MailItem e Outlook.Inspector) 2. No veo la asignación de variables (de las 3) 3. Estas utilizando el Body del MailItem cuando, a continuación, le dices que el formato es HTML. No sirve para nada ya que... --> si es texto plano se utiliza Body --> si es HTML se utiliza HTMLBody 4. En el HTMLBody estas pasando unicamente una url. Ahí si que ya no entiendo nada. 5. Al ser HTML y poner el texto en el Body, no se debería adjuntar nada A ver si me explico Imagina que creas un nuevo correo de forma manual. ¿Verdad que aparece tu firma según tienes configurado? Pues la gracia está en que, cuando se crea un objeto MailItem por código, si se muestra (Display) se mostrará con la firma. Pero, para que lo haga bien, primero debe asignarse el Inspector. Y para que respete la firma (que no es más que el HTMBody original de un nuevo correo), lo que debes hacer es concatenar tu Body con el HTMLBody original. Finalmente, si tu Body no es texto enriquecido, podrás utilizar un método llamado HTMLEncode para convertir texto plano en texto HTML (¡Gracias Happy! ) Resumiendo - Declaración de variables Dim oApp.... Dim oMail... Dim oInpector... - Asignación de variables Set oApp = .... Set oMail = oApp.... Set oInspector = oMail.... - Completamos los campos .To .CC .Subject .BodyFormat - El campo .HTMLBody lo creamos concatenando el Body que pudieras tener pero en formato HTML con el HTMLBody original (o séa: la firma) .HTMLBody= HtmlEncode(Me!Body) & .HTMLBody - Mostramos y lanzamos (hay que hacer los 2 pasos) .Display .Send Si sigues esos pasos, debería, por lo menos, enviar algo. Un saludo |
|
Zuesangel
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 13/Septiembre/2011 Localización: Guatemala Estado: Sin conexión Puntos: 151 |
Enviado: 05/Febrero/2022 a las 03:43 |
Muchas gracias, nuevamente. Discúlpame que no me supe explicar, ahora me explico.
tengo un formulario echo en access, en donde tengo dos cuadros combinados donde se busca los correos ingresados en una base de datos y los despliega en un cuadro de texto que seria .to .cc el .Body y .Subject esos los tengo manual, solo para ingresar información que va ir en el correo. en el .HTMLBody tendria que ir la firma pero como la firma es imagen no la pise en el .body. Este código va en el botón enviar donde valida y llama a la función EnvioEmail: If EnvioEmail Then MsgBox "MENSAJE ENVIADO", vbInformation, "Aviso" Call Limpiar End If Este seria la función: Private Function EnvioEmail() As Boolean On Error GoTo ManipulaError Dim oApp As Outlook.Application Dim oMail As Outlook.MailItem Dim oInspector As Outlook.Inspector If Me.emailUsuario <> "" Then Set oApp = CreateObject("Outlook.Application") Set oMail = oApp.CreateItem(olMailItem) Set olnspector = oMail.GetInspector With oMail .To = Me.emailUsuario .CC = Me.email_super .Subject = Nz(Me.Asunto, "") .Body = Nz(Me.Body, "") .BodyFormat = olFormatHTML .HTMLBody = HtmlEncode(Me!Body) & .HTMLBody & "<HTML><img src='C:\Users\MiguelAngel\Downloads\Emails\Image\firma.jpeg'" & "width='814' height='33'><br></HTML>" .Display .Send End With Set oApp = Nothing EnvioEmail = True Else MsgBox "ESPECIFIQUE UNA DIRECCION DE CORREO ELECTRONICO", vbExclamation, "Aviso" Me.emailUsuario.SetFocus End If Salir: Exit Function ManipulaError: MsgBox Err.Number & " : " & Err.Description End Function te envió un link donde tengo una imagen como es que esta el formulario. https://www.mediafire.com/file/7qta2e1xbwqc87n/correo.JPG/file Te lo doy así porque no encontré un repositorio para alojar imagen que me aceptara, de antemano muchas gracias por tu atención. |
|
Has el Bien y no mires a quien
|
|
Nomada
Colaborador Unido: 03/Julio/2011 Localización: España Estado: Sin conexión Puntos: 1719 |
Enviado: 05/Febrero/2022 a las 11:34 |
Buenas Zuesangel. Aquí te dejo el código que yo tengo para que aparezca una imagen (la tuya) al enviar un correo a través de outlook. En el correo aparece la dirección, el asunto y la imagen. Dim vDest As String 'Variable con el valor del campo Mail Dim Olk As Outlook.Application Set Olk = CreateObject("Outlook.Application") vDest = Nz(Me.Mail.Value, "") 'Creamos un nuevo mensaje de Outlook Dim OlkMsg As Outlook.MailItem Set OlkMsg = Olk.CreateItem(olMailItem) 'Creamos la información del mail With OlkMsg 'Definimos los elementos del mail Dim OlkDestinatario As Outlook.Recipient 'Destinatario Set OlkDestinatario = .Recipients.Add(vDest) OlkDestinatario.Type = olTo .Subject = "Mail de ejemplo" 'Asunto .HTMLBody = "<HTML> " & _ "<BODY>" & _ "<P>" & "<IMG SRC = 'C:\Users\MiguelAngel\Downloads\Emails\Image\firma.jpeg'>" & "</P>" & _ "</BODY> " & _ "</HTML>" .Display End With 'Eliminamos la instancia Set Olk = Nothing Set OlkMsg = Nothing Set OlkDestinatario = Nothing Probado y funcionando. Saludos.
Editado por Nomada - 05/Febrero/2022 a las 11:46 |
|
acilu55
Asiduo Unido: 27/Septiembre/2011 Estado: Sin conexión Puntos: 214 |
Enviado: 05/Febrero/2022 a las 13:39 |
No se si desafino, pero... ¿no sería mas fácil usar una plantilla para el mail que ya contuviera la Firma? o simplemente decir al programa de correro que tiene que usar determinada firma?
Editado por acilu55 - 05/Febrero/2022 a las 13:40 |
|
Gracias a todos de antemano
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 05/Febrero/2022 a las 16:54 |
@acilu55 Lo de "decir al programa de correo que tiene que usar determinada firma" es justamente lo que se hace con el Inspector.Pero yo tengo dudas de que el usuario tenga una firma configurada por lo que la respuesta de Nomada podría valer. Un saludo
|
|
Nomada
Colaborador Unido: 03/Julio/2011 Localización: España Estado: Sin conexión Puntos: 1719 |
Enviado: 06/Febrero/2022 a las 12:02 |
Buenas. Ahora mismo yo estoy utilizando ese código. Si necesito otra imagen, cambio la ruta y hecho. No hace falta ni abrir el código, creo un campo independiente donde le pongo la ruta y voilà. La verdad es que el lenguaje HTML es fácil de entender, además de ofrecer distintas acciones. Al incrustarlo dentro del código VB los resultados son satisfactorios. Saludos.
|
|
acilu55
Asiduo Unido: 27/Septiembre/2011 Estado: Sin conexión Puntos: 214 |
Enviado: 06/Febrero/2022 a las 19:11 |
@xavi
a lo que me refería es a esto: Set OUTAPP = CreateObject("Outlook.Application") Set OUTMAIL = OUTAPP.CreateItemFromTemplate(Application.CurrentProject.Path & "\oficio.oft") With OUTMAIL .To = mail ' que tendremos en algun sitio para buscarlo .cc = "" .bcc = "" .BodyFormat = olFormatHTML .Subject = "lo que necesitemos" adjunto1 = Application.CurrentProject.Path & "\archivo_a_adjuntar_si_lo_hay.pdf" .Attachments.Add (adjunto1) ..... siendo la plantilla oficio.oft la que tiene la imagen, las condiciones de protección de datos etc.etc. es más, creo que me lo enseñaste tú hace unos ocho años o así, la única pega que tengo es que para que el servidor de correo no me lo rechace tengo que hacer que los 700 envios los espacie de 20 en 20 y se pase la noche trabajando. |
|
Gracias a todos de antemano
|
|
Zuesangel
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 13/Septiembre/2011 Localización: Guatemala Estado: Sin conexión Puntos: 151 |
Enviado: 07/Febrero/2022 a las 02:40 |
Muchas gracias nuevamente, perdón por mi ignorancia sobre el Inspector pero no se como utilizarlo y escoger mi plantilla de firma, ya que si lo tengo configurado en el Outlook, con el código que me brindaste parece que si funcionaba y de igual manera este ultimo código que me brindaste también lo que pasa es que tantas pruebas que hice que hotmail.com que deplano me bloqueo por spam digo yo, ya que hice la prueba creando otra cuenta y si me funciono. Les estoy agradecido con la ayuda y apoyo.
|
|
Has el Bien y no mires a quien
|
|
01loko
Colaborador Unido: 17/Agosto/2017 Localización: Santander Estado: Sin conexión Puntos: 807 |
Enviado: 14/Febrero/2022 a las 18:46 |
No recuerdo cuando, pero hace tiempo, estube con el tema de la firma en outlook enviando desde access:
La mejor solucion que encontrre fue meter en un campo el texto html de la firma (o firmas) y pegarla al final del cuerpo del correo. No se si es lo que buscas
|
|
Recordar de que soy nuevo y estoy aprendiendo.
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 14/Febrero/2022 a las 18:59 |
Madre mía! Pues que mal estamos algunos...
|
|
Responder | Página 12> |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |