Ir para conteúdo
Fórum Script Brasil
  • 0

Pegar Assinatura do Outlook


GTTJ

Pergunta

Prezados,

Boa noite,

Tenho uma macro que pega informações de uma Sheet e coloca no corpo do e-mail.

O Que eu quero é que além de pegar esta informação é que coloque a minha assinatura

configurada no meu Outlook, ao invés de colocar uma assinatura sem formatação, como texto.

Alguém pode me ajudar?

Desde já agradeço à atenção, :ninja:

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Prezados,

Bom dia,

Segue a solução:

Tenho a seguinte macro

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

  'Esta função está sendo considerada para o Windows NT, caso for o Windows XP o caminho para o arquivo de assinatura é C:\Documents and Settings\" & Environ("username")  "\Dados de Aplicativos\Microsoft\Signatures\Sem título.htm")


   assinatura = pega_assinatura("C:\Documents and Settings\" & Environ
("username") & "\Application Data\Microsoft\Signatures\Sem título.htm")

With myItem

    .To = Sheets("E-MAIL").Range("h4").Value '"gsalves@contax.com.br"
    .Cc = Sheets("E-MAIL").Range("h11").Value '"gsalves@contax.com.br"
    .Subject = "Relatório de Aderência Atualizado até " & Sheets("E-MAIL").Range("H9").Value

  'Além de colocar todo o conteúdo em formato HTML estas linhas pegam a assina-
  'tura na minha máquina.

    .HTMLBody = "<html><body>" & Sheets("E-MAIL").Range("H17").Value & "<P>" & Sheets("E-

MAIL").Range("H19").Value & _
    "<P>" & Sheets("E-MAIL").Range("H21").Value & "<P>" & Sheets("E-MAIL").Range

("H23").Value & _
    "<P>" & Sheets("E-MAIL").Range("H25").Value & assinatura & "</body></html>"

    myItem.SentOnBehalfOfName = Sheets("E-MAIL").Range("h2").Value
    myAttachments.Add Range("L1").Value

    .Display

    SendKeys ("%r"), True

End With

Windows("MATRIZ DE ADERÊNCIA.xls").Activate

End Sub

Observações:

1º Este código além de capturar a assinatura que você tenha cadastrado no Outlook ela preenche os Campos "De", "Para", "Cc", "Assunto" e "Anexo";

2º O Comando SendKeys ("%r"), True evita a maldita mensagem de segurança do Outlook 2003;

3º Para que este código funcione é necessário referenciar a biblioteca do Outlook 2003, ou seja, Ferramentas\Referências no editor de VBA e marcar a opção Microsoft Office Outlook 11.0 Object Library.

Desde já agradeço à atenção de todos. :ninja:

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, estou querendo inserir um contador para cada mensagem enviado, poderia me ajudar.

Prezados,

Bom dia,

Segue a solução:

Tenho a seguinte macro

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

  'Esta função está sendo considerada para o Windows NT, caso for o Windows XP o caminho para o arquivo de assinatura é C:\Documents and Settings\" & Environ("username")  "\Dados de Aplicativos\Microsoft\Signatures\Sem título.htm")


   assinatura = pega_assinatura("C:\Documents and Settings\" & Environ
("username") & "\Application Data\Microsoft\Signatures\Sem título.htm")

With myItem

    .To = Sheets("E-MAIL").Range("h4").Value '"gsalves@contax.com.br"
    .Cc = Sheets("E-MAIL").Range("h11").Value '"gsalves@contax.com.br"
    .Subject = "Relatório de Aderência Atualizado até " & Sheets("E-MAIL").Range("H9").Value

  'Além de colocar todo o conteúdo em formato HTML estas linhas pegam a assina-
  'tura na minha máquina.

    .HTMLBody = "<html><body>" & Sheets("E-MAIL").Range("H17").Value & "<P>" & Sheets("E-

MAIL").Range("H19").Value & _
    "<P>" & Sheets("E-MAIL").Range("H21").Value & "<P>" & Sheets("E-MAIL").Range

("H23").Value & _
    "<P>" & Sheets("E-MAIL").Range("H25").Value & assinatura & "</body></html>"

    myItem.SentOnBehalfOfName = Sheets("E-MAIL").Range("h2").Value
    myAttachments.Add Range("L1").Value

    .Display

    SendKeys ("%r"), True

End With

Windows("MATRIZ DE ADERÊNCIA.xls").Activate

End Sub

Observações:

1º Este código além de capturar a assinatura que você tenha cadastrado no Outlook ela preenche os Campos "De", "Para", "Cc", "Assunto" e "Anexo";

2º O Comando SendKeys ("%r"), True evita a maldita mensagem de segurança do Outlook 2003;

3º Para que este código funcione é necessário referenciar a biblioteca do Outlook 2003, ou seja, Ferramentas\Referências no editor de VBA e marcar a opção Microsoft Office Outlook 11.0 Object Library.

Desde já agradeço à atenção de todos. :ninja:

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde, necessito da vossa ajuda.
tenho um código em VBA no access que faz o envio automático de email via outlook.
Nesse código, estou a utilizar a função GetBoiler que vai buscar a minha assinatura do outlook:

Function GetBoiler(ByVal sFile As String) As String
'Dick Kusleika
    Dim fso As Object
    Dim ts As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
    GetBoiler = ts.readall
    ts.Close
End Function

Mas acontece que a minha assinatura é constituida por texto e por uma imagem.
O código vai buscar a assinatura mas não mostra a imagem.

Já verifiquei tudo o que tinha de verificar nas "opções" do outlook e está tudo Ok. Até porque se eu envio o email normalmente a assinatura aparece com a imagem.
Podem ajudar? Preciso mesmo de resolver esta situação.
Obrigado!

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...