Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xanburzum

[Resolvido] Spam

Recommended Posts

Spam

 

No exemplo solução de spam é um processo de três etapas:

 

Envie uma "mensagem de rejeição " ao remetente para que eles saibam que a mensagem foi rejeitada, porque foi rejeitado, e as informações de contato.

Log a rejeição a um arquivo de texto, gravando a razão, pertinentes campos de cabeçalho da mensagem, e o corpo da mensagem.

 

Abortar a entrega da mensagem.

O CDO é usado para enviar a mensagem de rejeição, conforme mostrado no seguinte código:

 

Dim oRejectionMessage
Set oRejectionMessage = CreateObject("CDO.Message")
oRejectionMessage.To = oMsg.From
oRejectionMessage.From = strPostmasterEmail
oRejectionMessage.Subject = "EMail rejeitado"
oRejectionMessage.TextBody = "Sua mensagem com o assunto& _ 
""" & oMsg.Subject & """ endereçada para" & oMsg.To & _ 
  " foi rejeitado pelo filtro de conteúdo, devido à presença" & _ 
  "da frase ou palavra`" & strStopWord & "`."
oRejectionMessage.Send
Set oRejectionMessage = Nothing  'liberar o objeto de referência

Um de objeto FileStream (Scripting.FileSystemObject.TextStream) é usado para anexar os dados para o arquivo de log:


' log 

      Dim oFS
      Set oFS = CreateObject("Scripting.FileSystemObject")
      Dim oLog
      Set oLog = oFS.OpenTextFile("c:\spam.log", 8, True )
      oLog.Write "-----------------------------------------------" & vbCrLf
      oLog.Write "strStopWord `" & strStopWord & "` detectada." & vbCrLf
      oLog.Write "De: " & oMsg.From & vbCrLf
      oLog.Write "Para: " & oMsg.To & vbCrLf
      oLog.Write "Assunto: " & oMsg.Subject & vbCrLf & "Date: & _ 
	" & now() & vbCrLf & vbCrLf
      oLog.Write oMsg.TextBody & vbCrLf & vbCrLf
      oLog.Close

As mensagens são abortadas, alterando o campo MessageStatus envelope. Este campo é obtido a partir da retrieved EnvelopeFields da mensagem. A mensagem é então guardada de volta para o armazenamento de dados utilizando o CDO Message.DataSource.Save.

 

Dim oFlds
Set oFlds = oMsg.EnvelopeFields
oFlds("http://schemas.microsoft.com/cdo/smtpenvelope/messagestatus") = 3 ' bad mail, abort delivery
      oFlds.Update ' deve exigir atualização para cometer as alterações aos campos
      oMsg.DataSource.Save()' guardar a mensagem para o arquivo de mensagens

Por último, o parâmetro EventStatus é definido para 1 para indicar que nenhum outro evento sinks devem ser acionados. (É possível registrar vários eventos sinks para um determinado evento.)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.