Macro envío de libro excel por correo con firma

Tengo una macro y necesito modificarla, tengo que enviar distintos archivos a distintos usuarios, por lo que están separadas en To CC BBc Subject y body, el tema es que en BODY no puedo hacer que me quede en 2 o más líneas, y queda todo en línea por lo que el correo queda "feo", además necesito poder agregarle firma del correo, la tengo en formato html.

Sub OutlookMailExcelAdjunto()
Dim OutApp As Object
Dim OutMail As Object

'Se crea la conexión con el gestor de correo
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.logon
'Se crea metodo de envio de correo
Set OutMail = OutApp.CreateItem(0)

ActiveWorkbook.Save
'Se definen el destinatario, la copia y la copia oculta, el asunto
'el cuerpo del correo y los archivos adjuntos si se requiere.Especificando
'los campos usados.
On Error Resume Next
With OutMail
.To = Range("B4").Value
.CC = Range("B5").Value
.BCC = Range("B6").Value
.Subject = Range("B7").Value
. Body = "Estimado, Junto con saludar adjunto archivo con recaudación diaria. Saludos Cordiales"
.Attachments.Add Range("B9").Value
.Send
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End Sub

2 Respuestas

Respuesta
1

Lo del cuerpo quedó solucionado, pero la firma no puedo, intente con todas las opciones (al menos las que entendí) y no logro que aparezca la firma, la tengo en jpg y html y nada.

Sub OutlookMailExcelAdjunto()
Dim OutApp As Object
Dim OutMail As Object

'Se crea la conexión con el gestor de correo
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.logon
'Se crea metodo de envio de correo
Set OutMail = OutApp.CreateItem(0)


ActiveWorkbook.Save
'Se definen el destinatario, la copia y la copia oculta, el asunto
'el cuerpo del correo y los archivos adjuntos si se requiere.Especificando
'los campos usados.
On Error Resume Next
With OutMail
.To = Range("B4").Value
.CC = Range("B5").Value
.BCC = Range("B6").Value
.Subject = Range("B7").Value
.HtmlBody = "Estimado,<br><br>Junto con saludar adjunto archivo con recaudación diaria.<br><br><br>Saludos Cordiales"
.Attachments.Add Range("B9").Value
.Send
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Si la firma la tienes en Outlook, Herramientas, Opciones, Formato de correo, "Redactar en este formato" HTML; y la firma la tienes en la sección de Firmas. Prueba con lo siguiente, al final agregué .HtmlBody

. HtmlBody = "Estimado,<br><br>Junto con saludar adjunto archivo con recaudación diaria.<br><br><br>Saludos Cordiales" & .HtmlBody

Si la firma la tienes en un archivo jpg, entonces utiliza lo siguiente:

Sub OutlookMailExcelAdjunto()
    Dim OutApp As Object
    Dim OutMail As Object
    'Se crea la conexión con el gestor de correo
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.logon
    'Se crea metodo de envio de correo
    Set OutMail = OutApp.CreateItem(0)
    ActiveWorkbook.Save
    'Se definen el destinatario, la copia y la copia oculta, el asunto
 'el cuerpo del correo y los archivos adjuntos si se requiere. Especificando
 'los campos usados.
    On Error Resume Next
    With OutMail
        .To = Range("B4").Value
        .CC = Range("B5").Value
        .BCC = Range("B6").Value
        .Subject = Range("B7").Value
        'Archivo de imagen que contiene la firma
        .Attachments.Add "C:\trabajo\logo.jpg"
        .Attachments.Add Range("B9").Value
       .HTMLBody = "<html>" & _
                    "<body>" & _
                    "Estimado,<br><br>Junto con saludar adjunto archivo con recaudación diaria." & _
                    "<br><br><br>Saludos Cordiales" & _
                    "<br><br><br>" & _
                    "<img src=cid:logo.jpg height=720 width=850>" & _
                    "</body>" & _
                "</html>"
        .Display
        '.Send
    End With
    On Error GoTo 0
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

.

Cambia .Attachments.Add "C:\trabajo\logo.jpg" por la carpeta y el nombre de tu archivo. También el nombre del archivo lo pones aquí: "<img src=cid:logo.jpg height=720 width=850>"

'S aludos. Dante Amor. Recuerda valorar la respuesta.

.

Respuesta
1

En lugar de usar la propiedad "Body" del objeto Outlook, sugiero usar "HTMLBody", de ese modo puedes incluir etiquetas HTML y poner todo en distinta líneas.

Sobre cómo incluir la firma en tu mensaje, sugiero dar una buena leída a la siguiente web:

Enlace

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas