Como utilizar o exemplo Rule.dll para criar uma regra de pasta a receber no Visual Basic

Traduções de Artigos Traduções de Artigos
Artigo: 251125 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Sumário

Este artigo descreve como utilizar o exemplo Rule.dll para adicionar um conjunto de regras à pasta a receber de uma caixa de correio. As regras são uma técnica poderosa que pode ser aplicada a várias caixas de correio sem desvantagens associadas com scripts de eventos do servidor.

Mais Informação

As regras que são adicionadas nesta função de exemplo rever todas as mensagens recebidas. Se o assunto da mensagem inclui o palavra "teste", é enviada uma mensagem de resposta e a mensagem original é eliminada.

O Platform Software Development Kit (SDK) inclui um componente COM regras. A documentação no SDK fornece exemplos de utilizar o componente de regras no contexto de uma aplicação de ASP (Active Server Pages). Também pode, no entanto, utilizar este exemplo em aplicações utilizando a biblioteca de objectos de dados colaboração (CDO, Collaboration Data OBJECTS).

Nota O Rule.dll deve ser compilado antes do utilizar. Compilar a biblioteca Rule.dll requer competências em Visual C++ e ultrapassa o âmbito deste artigo. Consulte a documentação listada na secção "Referências" deste artigo para obter mais informações.

Esta função cria três itens na colecção HiddenMessages da pasta a receber:
  • A regra de resposta
  • O modelo para a mensagem de resposta
  • A regra de eliminação
Para executar este programa de exemplo, siga estes passos:
  1. No Visual Basic, crie um novo projecto EXE padrão.
  2. Adicione uma referência à biblioteca do Microsoft CDO 1.21 e para a biblioteca Rule.dll. (É necessário navegar para a localização onde criado Rule.dll.)
  3. Copiar a função seguinte para o módulo de código do formulário predefinido:
    Option Explicit
    Const SUBJECT_TO_SEARCH = "Test"
    Public Function AddReplyAndDeleteRule(ByVal strProfileInfo As String) As Long
    
    Dim objCDOSession As MAPI.Session                ' CDO Session.
    Dim objInbox As MAPI.Folder                      ' Folder to set rule.
    Dim colRules As MSExchange.Rules                 ' Rules collection.
    Dim objReplyMsg As MAPI.Message                  ' Reply template.
    Dim objReplyRule As MSExchange.Rule
    Dim objDeleteRule As MSExchange.Rule
    Dim objPropVal As MSExchange.PropVal             ' Property value.
    Dim objContCond As MSExchange.ContentCondition   ' Condition.
    Dim objReplyAction As MSExchange.Action
    Dim objDeleteAction As MSExchange.Action
    
    Const SUBSTRING = 1
    Const IGNORECASE = &H10000
    Const ACTION_DELETE = 3
    Const ACTION_REPLY = 4
    Const CdoPR_SUBJECT = &H37001E
    
    On Error GoTo Error_Handler
    
    ' Create and log on to session object.
    Set objCDOSession = New MAPI.Session
    objCDOSession.Logon , , False, True, True, True, strProfileInfo
    Set objInbox = objCDOSession.Inbox
    
    'Each folder has a Rules collection.
    Set colRules = New MSExchange.Rules
    colRules.Folder = objInbox
    
    ' Create condition for rules.
    Set objPropVal = New MSExchange.PropVal
    objPropVal.Tag = CdoPR_SUBJECT  'looks in Subject property
    objPropVal.Value = SUBJECT_TO_SEARCH 'looks for this string
    
    ' Create ContentCondition
    Set objContCond = New MSExchange.ContentCondition
    objContCond.Value = objPropVal
    objContCond.PropertyType = CdoPR_SUBJECT
    objContCond.Operator = SUBSTRING + IGNORECASE
    ' Previous line ignores case and other text.
    
    ' Create reply message and store in HiddenMessages collection.
    Set objReplyMsg = objInbox.HiddenMessages.Add
    
    ' Set reply message properties.
    objReplyMsg.Type = "IPM.Note.Rules.ReplyTemplate.Microsoft"
    objReplyMsg.Text = "Please do not send messages to this address"
    objReplyMsg.Update
    
    ' Create Reply Rule first.
    Set objReplyRule = New MSExchange.Rule
    
    ' Set reply action.
    Set objReplyAction = New MSExchange.Action
    objReplyAction.ActionType = ACTION_REPLY
    
    Dim vntArgs(1) As Variant
    vntArgs(0) = objReplyMsg.ID       ' ID of template
    vntArgs(1) = objReplyMsg.FolderID ' folder ID of template
    objReplyAction.Arg = vntArgs      ' Set the args
    
    ' Set other reply rule properties.
    objReplyRule.Name = "Reply Test"
    objReplyRule.Condition = objContCond
    objReplyRule.Actions.Add , objReplyAction
    
    ' Add reply rule to rules collection.
    colRules.Add , objReplyRule
    
    ' Create Delete Rule object.
    Set objDeleteRule = New MSExchange.Rule
    
    ' Create delete action.
    Set objDeleteAction = New MSExchange.Action
    objDeleteAction.ActionType = ACTION_DELETE
    
    ' Set delete rule properties.
    objDeleteRule.Name = "Delete Test"
    objDeleteRule.Condition = objContCond  'reuse condition
    objDeleteRule.Actions.Add , objDeleteAction
    colRules.Add , objDeleteRule
    colRules.Update
    
    ' Wrap up.
    objCDOSession.Logoff
    AddReplyAndDeleteRule = 0  'successful
    
    Set objPropVal = Nothing
    Set objContCond = Nothing
    Set objReplyAction = Nothing
    Set objDeleteAction = Nothing
    Set objReplyRule = Nothing
    Set objDeleteRule = Nothing
    Set objReplyMsg = Nothing
    Set colRules = Nothing
    Set objInbox = Nothing
    Set objCDOSession = Nothing
    
    Exit Function
    
    Error_Handler:
    AddReplyAndDeleteRule = Err.Number
    
    End Function
  4. Adicionar um botão de comando para o formulário predefinido e, procedimento de evento (note que tem de alterar ServerName e caixa de correio para os nomes apropriados) clique em Colar o seguinte código ao botão:
    Dim lResult As Long
    ' TODO Change the ServerName and MailBox to the appropriate names.
    lResult = AddReplyAndDeleteRule("ServerName" & vbLf & "MailBox")
    MsgBox "Call to function: " & lResult
  5. Execute o projecto e, em seguida, clique no botão de comando. Se a caixa de mensagem apresentar um "0" (zero), o processo de trabalho e as regras foram adicionadas; caso contrário, um valor de erro é apresentado.
  6. Utilizar o Microsoft Outlook ou outro cliente de correio electrónico, envie uma mensagem com o assunto "Test" para a caixa de correio. As regras a caixa de correio irão responder novamente e eliminar a mensagem.
Nota As regras que são adicionadas pelo componente Rule.dll COM não aparecem na interface de utilizador do Outlook; é a única forma manipulá-los através do código. Esta é uma limitação das interfaces COM utilizado para criar regras, não uma limitação do exemplo propriamente dito. Por conseguinte, recomenda-se que todos os testes de ser efectuado numa caixa de correio que criar para este fim.
Para transferir o Microsoft Exchange Development Kit (EDK) 5.5, visite o seguinte Web site da Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyId=36A309C3-8C55-4476-8785-CAFC59A2D075&displaylang=en
Microsoft já não suporta Microsoft EDK 5.5 com versões posteriores 5.5 do Microsoft Exchange Server.Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
815365Microsoft EDK 5.5 não é suportada em versões posteriores 5.5 do Microsoft Exchange Server

Referências

Para mais informações, consulte os seguintes tópicos da MSDN (Microsoft Developer Network):
Componente de regra
http://technet.microsoft.com/en-us/library/cc180206.aspx

Propriedades

Artigo: 251125 - Última revisão: 23 de fevereiro de 2014 - Revisão: 5.3
A informação contida neste artigo aplica-se a:
  • Microsoft Collaboration Data Objects 1.21
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Exchange Server 2003 Software Development Kit
  • Microsoft Exchange Server 5.5 Standard Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhowto KB251125 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 251125

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com