Notifications
Clear all

Assinatura com HTML de origem ONLINE

4 Posts
3 Usuários
0 Reactions
1,390 Visualizações
(@jcerbaro)
Posts: 2
New Member
Topic starter
 

Estou criando uma planilha que gera e-mails automaticamente. Já está tudo gerando como quero sem problemas, exceto na hora que meu código insere a assinatura, pois a assinatura padrão de nossa empresa leva junto uma imagem de origem online.

é uma imagem .png que está armazenada no nosso site. Quando geramos um e-mail manualmente pelo Outlook, a imagem é inserida normalmente, mas quando é via macro ela não aparece. (Fica um quadro escrito: "Não é possível exibir essa imagem no momento").

Alguém tem uma sugestão de como eu posso resolver? Acredito que o VBA não está entendendo o código HTML do arquivo de assinaturas...

Esse é o código que estou usando:

Option Explicit
Dim assinatura As Variant

Public Function pega_assinatura(ByVal sFile As String) As String

Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
pega_assinatura = ts.readall
ts.Close

End Function

Sub Envio_Email()

On Error Resume Next
Dim myOlApp As Outlook.Application
Dim myItem As MailItem
Dim myAttachments As Attachments
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItem(olMailItem)
Set myAttachments = myItem.Attachments

assinatura = pega_assinatura("--DIRETÓRIO DA ASSINATURA QUE ESTOU USANDO--")

With myItem

.To = "--DESTINATÁRIO--"
.CC = "--EM CÓPIA--"
.Subject = "--ASSUNTO--"

.HTMLBody = "<html><body>" & assinatura & "</body></html>"

myItem.SentOnBehalfOfName = Sheets("Plan1").Range("h2").Value
myAttachments.Add Range("L1").Value

.Display

End With

End Sub

 
Postado : 07/10/2015 7:56 am
Basole
(@basole)
Posts: 487
Reputable Member
 

jcerbaro, tente inserir no corpo do email (HTMLBody), o endereço da sua imagem png:

Dim SuaImage As sting: image = "http://sitedaimage.com.br/imagem.Png"   ' * AQUI: altere o local de hospedagem da sua img

strbody = "<table><td valign=""top""><img src=""" & SuaImage & "alt=""My logo"" " & _
"width=""600"" height=""120"" hspace=""10"" vspace=""10"" align=""left"" border=""0"" /></td>" & _
"<tr></table>"
'
'
'
'
  .HTMLBody = strbody & "<br>" & assinatura   
'

fonte: http://www.rondebruin.nl/win/s1/outlook/signature.htm

Click em se a resposta foi util!

 
Postado : 07/10/2015 10:08 am
(@jcerbaro)
Posts: 2
New Member
Topic starter
 

Olá!

Quanto isso tudo bem... Já consegui visualizar o e-mail com o corpo exatamente como eu quero, mas a imagem não carrega no destinatário! Eis o problema:
1 - Eu vejo a assinatura montada corretamente
2 - Se eu coloco a assinatura manualmente pelo Outlook, o destinatário recebe a imagem
3 - Se eu insiro a assinatura pela macro, o destinatário não recebe a imagem
4 - É o mesmo arquivo de assinatura para os casos em 2 e 3

 
Postado : 07/10/2015 11:33 am
(@lipetom)
Posts: 24
Eminent Member
 

Tenta desta forma:

    Dim olapp As Outlook.Application
    Dim objMail As MailItem
    Set olapp = Outlook.Application
    'Create mail item
    Set objMail = olapp.CreateItem(olMailItem)

CaminhoAssinatura = "www.exemplo.com.br/img.jpg"
Assinatura = "<!DOCTYPE html>" & vbnewline & "<html>" & vbnewline & "<body>" & vbnewline & "<img src=""" & """" & CaminhoAssinatura & """" & ">"  & vbnewline & "</body>" & vbnewline & "</html>"

strbody = "<p style='font-family:calibri;font-size:15'>Testando Assinatura,<br /></p> "

With objMail
        .BodyFormat = olFormatHTML
        .To = "destinatario@xxx.com.br"
        .CC = ""
        .BCC = ""
        .Subject = "Testando"
        .HTMLBody = strbody & assinatura
       .send para enviar
    End With
 
Postado : 08/10/2015 12:04 pm