Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo passo a passo descreve como expandir o serviço Simple Mail Transport Protocol (SMTP) através de um receptor (sink) de eventos de transporte. O código do Microsoft Visual Basic, Scripting Edition (VBScript), verifica a existência de uma linha de assunto que contenha a palavra "virus" e de anexos que tenham uma extensão .vbs, em mensagens de SMTP recebidas. Em ambos os casos, a entrega de mensagens suspeitas é bloqueada.
Registar um receptor de eventos de transporte para o serviço SMTP
Inicie o Explorador do Windows.
Crie uma nova pasta denominada "EventSink" no directório raiz C (C:\EventSink).
Copie o ficheiro Smtpreg.vbs do Exchange Software Developers Kit para a pasta criada.
No Explorador do Windows, abra a pasta C:\EventSink, clique com o botão direito do rato no painel esquerdo, aponte para Novo e, em seguida, clique em Documento de texto.
Atribua o nome Smtpmsgcheck.vbs ao novo ficheiro. Se for apresentada uma caixa de diálogo Mudar o nome, clique em Sim.
Clique com o botão direito do rato no novo ficheiro e, em seguida, clique em Editar. No editor (Bloco de notas), introduza o seguinte código VBScript:
Sub IEventIsCacheable_IsCacheable()
'Para implementar a interface e devolver S_OK implicitamente
Eng Sub
Sub ISMTPOnArrival_OnArrival(ByVal Msg, EventStatus )
Dim envFlds
Dim colAttachs
Dim iFound
Set envFlds = Msg.EnvelopeFields
If Msg.Subject = "" Or Len(Msg.Subject) < 5 Then iFound = 0
Else
iFound = Instr(1, Msg.Subject, "VIRUS", 1) ' Primeira posição da palavra VIRUS
End If
'Verificar se a mensagem contém um anexo VBS
Set colAttachs = Msg.Attachments
For Each oAttach in colAttachs
If Instr(1, oAttach.FileName, "vbs", 1)> 0 Then iFound = 1
Next
If iFound > 0 Then
'Não entregar, colocar mensagem no directório Badmail.
envFlds ("http://schemas.microsoft.com/cdo/smtpenvelope/messagestatus") = 3
envFlds.Update 'Consolidar as alterações do estado da mensagem
'Ignorar restantes receptores de eventos
EventStatus = 1
End If
End Sub
Guarde as alterações e feche o Bloco de notas.
Crie outro ficheiro de texto, atribua-lhe o nome Instsink.bat, clique com o botão direito do rato no ficheiro e, em seguida, clique em Editar. No Bloco de notas, introduza as seguintes linhas:
@ECho Off
REM***** As 2 linhas seguintes instalam o receptor de eventos para registar mensagens SMTP *****
Cscript smtpreg.vbs /add 1 onarrival SMTPMessageCheck
CDO.SS_SMTPOnArrivalSink "mail from=*"
Cscript smtpreg.vbs /setprop 1 onarrival SMTPMessageCheck Sink
ScriptName "C:\EventSink\SMTPMsgCheck.vbs"
REM ********** Remova a tag 'REM' da linha seguinte **********
REM ***** se pretender desinstalar o receptor de eventos *****
REM cscript smtpreg.vbs /remove 1 onarrival SMTPMessageCheck
Guarde as alterações e feche o Bloco de notas.
Clique em Iniciar, clique em Executar, escreva cmd e, em seguida, clique em OK para iniciar uma linha de comandos do Windows 2000. Escreva cd \EventSink para passar para a pasta C:\EventSink.
Escreva instsink.bat e prima ENTER para executar o ficheiro batch e registar o EventSink de exemplo, para que este registe mensagens. Certifique-se de que o receptor de eventos é correctamente registado e, em seguida, escreva exit e prima ENTER para sair da linha de comandos.
Clique em Iniciar, clique em Programas, clique em Microsoft Exchange e, em seguida, clique em System Manager.
Clique em Servers, expanda o seu servidor, clique em SMTP e, em seguida, reinicie o Default SMTP Virtual Server.
Teste o receptor de eventos de transporte utilizando Telnet.
Qual foi o esforço que despendeu pessoalmente para utilizar este artigo?
Muito baixo
Baixo
Moderado
Elevado
Muito elevado
Diga-nos porquê e o que podemos fazer para melhorar estas informações
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.