Mostrar imagen en la firma de Outlook

Resuelto
TonyLucky -  
 TonyLucky -

Hola a todos,

Envío correos en Outlook a través de una aplicación VBA Excel. Según el destinatario del correo, se añade una firma al correo. Estas firmas están almacenadas en formato htm en una carpeta.

Funciona muy bien, excepto si añado una imagen a la firma. Entonces recibo el mensaje "no podemos mostrar la imagen".

Tras investigar, encontré dos pistas:

  1. Asegurarse de que el correo esté en formato HTML. Y así es
  2. Desactivar, en el centro de gestión de la privacidad, la opción "no descargar automáticamente..." Y así es

No he encontrado otras pistas, ni siquiera en sitios de habla inglesa. Aquí está la parte del código que envía el correo:

With LeMail.CreateItem(olMailItem) .BodyFormat = olFormatHTML .SentOnBehalfOfName = Me.CBX_1.Text .To = Valeur_Cherchee_A .HTMLBody = "<p>" & texto1 & "</p><br><p>" & firma & "</p>" .Display 'permite validar el correo antes de enviarlo End With

Si alguien tiene alguna idea, de antemano, muchas gracias. Añadir un logo a la firma hace que el correo sea más profesional.

Tony


8 respuestas

  1. Usuario anónimo
     

    Hola,

    Solo tienes que añadir tu logo directamente en Outlook y luego solo concatenarlo en tu código.

     Set LeMail = CreateObject("Outlook.Application") With LeMail.CreateItem(0) .BodyFormat = olFormatHTML .To = "***@***" .Subject = "Asunto del correo" .HTMLBody = .Body & "<p>" & texto1 & "</p><br>" .Display ' Permite validar antes de enviar End With 
    0
  2. TonyLucky
     

    Buenas noches,

    Gracias por su respuesta.

    Estoy revisando en Outlook, pero no veo dónde guardar una imagen. Puedo añadir una a un correo, pero no es automático.

    Dependiendo de los destinatarios, puedo tener diferentes firmas, con una imagen específica.

    ¿Podría ser más preciso y tener la amabilidad de indicarme el procedimiento a seguir? Lo mismo para la parte de código.

    De antemano, gracias.

    0
    1. Usuario anónimo
       

      A continuación, las etapas para insertar un logo en una firma en Outlook, sin usar código:


      ---

      1. Abrir la configuración de firmas en Outlook

      1. Abra Outlook.


      2. Haga clic en Archivo en la esquina superior izquierda.


      3. Vaya a Opciones.


      4. En la ventana que se abre, seleccione la pestaña Correo en el menú de la izquierda.


      5. Haga clic en el botón Firmas en la sección Crear o modificar firmas para los mensajes.


      ---

      2. Crear o modificar una firma

      1. En la ventana Firmas y temas:

      Haga clic en Nuevo para crear una nueva firma.

      Ponga un nombre a su firma (por ejemplo: MiFirma).

      2. En el área de edición de la firma, añada su texto (nombre, función, datos de contacto, etc.).


      ---

      3. Añadir un logo o una imagen

      1. Coloque el cursor en el lugar donde desea insertar la imagen.


      2. Haga clic en el ícono Imagen (pequeño marco con una montaña).


      3. Seleccione el archivo de su logo o imagen en su computadora.


      4. Haga clic en Insertar para añadir la imagen.


      ---

      4. Ajustar la imagen

      1. Una vez que la imagen esté insertada, puede:

      Redimensionar la imagen: haga clic en las esquinas para ajustar su tamaño.

      Alignar la imagen: use las opciones de formato disponibles en la barra de edición.

      ---

      5. Elegir los correos electrónicos a los que aplicar la firma

      1. En la sección Elegir una firma por defecto:

      Mensajes nuevos: seleccione su firma para que se añada automáticamente a los nuevos correos electrónicos.

      Respuestas y reenvíos: elija si desea incluir la firma en sus respuestas.

      ---

      6. Guardar y usar

      1. Haga clic en Aceptar para guardar su firma.


      2. Cierre la configuración y pruebe creando un nuevo mensaje para verificar que el logo aparezca correctamente.


      ---

      Consejos

      Formatos soportados: Utilice imágenes en formatos comunes como PNG, JPEG o GIF.

      Tamaño de la imagen: Optimice el tamaño de su logo (máx. 200-300 píxeles de ancho) para evitar que el correo electrónico sea pesado.

      Verificación: Envíese una prueba a su propia dirección para verificar la visualización.


      Así, su logo estará integrado en todos los correos electrónicos que envíe con esta firma.

      0
      1. TonyLucky > Usuario anónimo
         

        Hola,

        Es la solución más simple que había probado al principio. Desafortunadamente, no funciona.

        Gracias de todos modos por su sugerencia.

        1
  3. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   Embajador 1 588
     

    hola,

    1. en el fragmento de código que compartes, ¿qué contiene la variable "signature"?
    2. el mensaje "no podemos mostrar la imagen" se muestra cuándo y por qué?
    3. ¿qué contiene el body html al recibir el mensaje?
    0
  4. thev Mensajes publicados 2011 Fecha de registro   Estado Miembro Última intervención   724
     

    Buenas noches,

    Funciona muy bien, salvo si agrego una imagen a la firma. Entonces aparece el mensaje "no podemos mostrar la imagen".

    Efectivamente, el problema es que cuando recuperas el enlace que permite el acceso a la firma, la dirección de la imagen es solo relativa y por lo tanto no permite su visualización. Necesitas utilizar una función de este tipo, que convierta la dirección relativa de la imagen en una dirección absoluta:

     Function Signature(nom_signature As String, Optional nom_compte As String) As String Dim FSO As Object, TextStream As Object Dim nom_fichier As String, id_signature As String, id_signature_Pct20 As String On Error Resume Next Set FSO = CreateObject("Scripting.FileSystemObject") If nom_compte <> Empty Then id_signature = nom_signature & " (" & nom_compte & ")" _ Else id_signature = nom_signature nom_fichier = Environ("APPDATA") & "\Microsoft\Signatures\" & id_signature & ".htm" Set TextStream = FSO.OpenTextFile(nom_fichier) If Err.Num = 0 Then Signature = TextStream.ReadAll id_signature_Pct20 = Replace(id_signature, " ", "%20") Signature = Replace(Signature, id_signature_Pct20, id_signature) 'reemplazo dirección relativa imágenes por dirección absoluta Signature = Replace(Signature, id_signature & "_fichiers/", Environ("APPDATA") & "\Microsoft\Signatures\" & id_signature & "_fichiers/") End If End Function 

    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       

      ¿Esta dirección absoluta será utilizable por el destinatario del mensaje?

      0
  5. TonyLucky
     

    Hola,

    Gracias por su respuesta.

    ¿Es necesario que las firmas estén en la carpeta Environ("APPDATA") & "\Microsoft\Signatures\"? Si es así, esto es lo que me da mi ordenador: "C:\Users\Ordi1\AppData\Roaming". Si no, esto querría decir que las firmas pueden estar en cualquier carpeta, lo cual me vendría bien...

    No entiendo "mi cuenta". ¿Se refiere a la dirección de correo electrónico o a una contraseña?

    Gracias de antemano por sus aclaraciones.

    0
  6. thev Mensajes publicados 2011 Fecha de registro   Estado Miembro Última intervención   724
     

    Hola,

    Le aconsejo mostrar el contenido del directorio:

    C:\Users\Ordi1\AppData\Roaming\Microsoft\Signatures

    para ver cómo están almacenadas sus firmas: <nombre_firma>.htm. Pueden estar asociadas o no con la cuenta de correo.


    0
  7. TonyLucky
     

    La carpeta C:\Users\Ordi1\AppData\Roaming\Microsoft\Signatures está vacía.

    Hasta ahora, mis firmas están almacenadas en una carpeta que creé, en formato htm.

    ¿Debo obligatoriamente usar Environ("APPDATA") o puedo mantener mis firmas en mi carpeta actual?

    0
  8. TonyLucky
     

    He probado y funciona muy bien. Genial. Muchas gracias.

    He mantenido mis firmas en su carpeta actual, pero las guardo en formato "página web, filtrada".

    Ahora tengo bastante trabajo para actualizar mi VBA.

    Que tengas un buen día,

    Tony

    0