none
Script assinatura e-mail RRS feed

  • Pergunta

  • Boa Tarde!

    Tenho um script que cria a assinatura no outlook, o mesmo esta funcionando corretamente, porem preciso de uma ajuda para verificar se o campo esta vazio, se estiver passa para o proximo campo e assim por diante, os campos seriam Celular e Telefone.

    On Error Resume Next
    Set objSysInfo = CreateObject("ADSystemInfo")
    strUser = objSysInfo.UserName
    Set objUser = GetObject("LDAP://" & strUser)
    strName = objUser.FullName
    strCompany = objUser.Company
    strTitle = objUser.Title
    strCompany = objUser.Company
    strl = objUser.l
    strco = objUser.co
    strMobilePhone = objUser.mobile
    strPhone = objUser.TelephoneNumber
     
    Set objword = CreateObject("Word.Application")
    With objword
    	Set objDoc = .Documents.Add()
    	Set objSelection = .Selection
    	Set objEmailOptions = .EmailOptions
    End With
     
    Set objSignatureObject = objEmailOptions.EmailSignature
    Set objSignatureEntries = objSignatureObject.EmailSignatureEntries
    With objSelection
     
    	.ParagraphFormat.Alignment = wdAlignParagraphRight
    	.TypeParagraph
    	objSelection.Font.Size = "10"
    	objSelection.Font.Name = "verdana"   
    	objSelection.Font.Bold = True   
    	objSelection.Font.Color = 8421504
    	objSelection.TypeText strName
    	With .Font
    		.Name = "Verdana"
    		.Size = 10
    		.Bold = false
    	End With
        .Font.Italic = False
        .Font.Color = 8421504
    	If strTitle <> "" Then
    		.TypeText strTitle & Chr(11)
    	End If
    	If strCompany <> "" Then
    		.TypeText strCompany & Chr(11)
    	End If
    	
    	If strMobilePhone <> "" Then
    		.TypeText "Tel. + " & strPhone & Chr(11)
    	End If
    	
    	If strMobilePhone <> "" Then
    		.TypeText "Cel. + " & strMobilePhone & Chr(11)
    	End If
    	
    	If strCompany = "Produquimica Paulista" Then
    		.InlineShapes.AddPicture "\\SERVER\SYSVOL\empresa.local\scripts\Signature\Signature_Logo.jpg", True, True
    	ElseIf strCompany <> "Produquimica Suzano" Then
    		.InlineShapes.AddPicture "\\SERVER\SYSVOL\empresa.local\scripts\Signature\Signature_LogoOLD.jpg", True, True
    	End If
     
    	.TypeText Chr(11)
    	
    End With
     
    Set objSelection = objDoc.Range()
    objSignatureEntries.Add "AD Signature", objSelection
    objSignatureObject.NewMessageSignature = "AD Signature"
    objSignatureObject.ReplyMessageSignature = "AD Signature"
    objDoc.Saved = True
    objword.Quit
    


    • Editado Fábio JrModerator segunda-feira, 10 de março de 2014 21:15 Formatação do código
    segunda-feira, 10 de março de 2014 20:14

Respostas

  • Tiago,

    O seu script parece já fazer isso, nesta linhas:

    	If strMobilePhone <> "" Then
    		.TypeText "Tel. + " & strPhone & Chr(11)
    	End If
    	
    	If strMobilePhone <> "" Then
    		.TypeText "Cel. + " & strMobilePhone & Chr(11)
    	End If

    Ele contém um pequeno erro que foi utilizar a váriavel de Celular para testar a parte do Telefone (primeiro IF acima), tinha que comparar o strPhone.

    Pode acontecer o erro de lá no campo ao invés de estar em branco pode ter espaços, então você pode fazer assim, lá onde você preenche as váriaveis (logo no inicio) dê um trim (retira espaços antes e depois), assim:

    strMobilePhone = trim(objUser.mobile)
    strPhone = Trim(objUser.TelephoneNumber)


    Fábio de Paula Junior

    • Marcado como Resposta Tiago Zambelli terça-feira, 11 de março de 2014 13:17
    segunda-feira, 10 de março de 2014 21:19
    Moderador

Todas as Respostas

  • Tiago,

    O seu script parece já fazer isso, nesta linhas:

    	If strMobilePhone <> "" Then
    		.TypeText "Tel. + " & strPhone & Chr(11)
    	End If
    	
    	If strMobilePhone <> "" Then
    		.TypeText "Cel. + " & strMobilePhone & Chr(11)
    	End If

    Ele contém um pequeno erro que foi utilizar a váriavel de Celular para testar a parte do Telefone (primeiro IF acima), tinha que comparar o strPhone.

    Pode acontecer o erro de lá no campo ao invés de estar em branco pode ter espaços, então você pode fazer assim, lá onde você preenche as váriaveis (logo no inicio) dê um trim (retira espaços antes e depois), assim:

    strMobilePhone = trim(objUser.mobile)
    strPhone = Trim(objUser.TelephoneNumber)


    Fábio de Paula Junior

    • Marcado como Resposta Tiago Zambelli terça-feira, 11 de março de 2014 13:17
    segunda-feira, 10 de março de 2014 21:19
    Moderador
  • Fabio, obrigado pela ajuda, na verdade esse script é do proprio forum so adaptei para onde trabalho e com pesquisa alterei a parte do script acima assim.

     .TypeText strTitle & chr(11) & strCompany & chr(11) & "Tel. + " & strPhone & Chr(11) & "Cel. + " & strMobilePhone & Chr(11)
        .TypeText Chr(11)
        .InlineShapes.AddPicture "\\server\SYSVOL\produquimica.local\scripts\Signature\Signature_Logo.jpg", True, True

    Acredito que eu não soube me expressar, quando eu falo em campo em branco é, se no AD nao tiver informação de celular ou telefone ele passa para o próximo campo se deixar uma linha em branco na assinatura exemplo:

    Assinatura completa

    Joao

    Analista

    Cel.: (xx) xxxxx - xxxx

    Tel.: (xx) xxxx - xxxx

    Logo tipo

    Assinatura sem celular

    Joao

    Analista

    Tel.: (xx) xxxx - xxxx

    Logo tipo


    terça-feira, 11 de março de 2014 12:14
  • Consegui com a ajuda de um colega alterando dessa forma

    If not strPhone = ""  Then
    .TypeText "Tel:"
    .TypeText strPhone & Chr(11)
                      
    End If 
    If not strMobilePhone = "" Then
     .TypeText "Cel:"
     .TypeText strMobilePhone & Chr(11)
    End If 

    • Sugerido como Resposta Bruno LR terça-feira, 11 de março de 2014 16:24
    terça-feira, 11 de março de 2014 13:17
  • Fabio,

    Eu consigo bloquear para nenhum usuário excluir a assinatura no outlook?

    terça-feira, 11 de março de 2014 13:17
  • Quanto a bloquear a alteração da assinatura eu não sei dizer. 

    Veja se no fórum de Windows Server alguém pode ajudar, talvez exista alguma diretiva de GPO pra isso.


    Fábio de Paula Junior

    terça-feira, 11 de março de 2014 13:28
    Moderador
  • Boa Tarde!

    Fabio,

    Tenho 3 dominio @xxx.com.br ; @yyy.com.br ; @zzz.com.br possuimos 3 tipos de emails diferentes, pois bem, para cada dominio utilizamos um logo tipo, como posso fazer com que o script verifique qual dominio do usuario e aplique o logo tipo correspondente, utlizando o script que ja tenho so adaptar.

    terça-feira, 18 de março de 2014 19:04