Domanda

ho postato la stessa domanda con C #, ma non ha ricevuto alcuna risposta, così ho intenzione di tentare di inviare la stessa domanda utilizzando VB

sto cercando di creare un agente di trasporto che verifica l'oggetto della e-mail in uscita non è vuoto, se è allora aggiunge 'kranichs gioiellieri alla riga dell'oggetto. Se non è vuoto, propercases il formato della posta in uscita

il codice che ho in VB:

Imports System

Imports System.Collections.Generic

Imports System.Text

Imports Microsoft.Exchange.Data.Transport

Imports Microsoft.Exchange.Data.Transport.Routing

Imports Microsoft.Exchange.Data.Transport.Smtp


Namespace mySubjectAgent

    NotInheritable Class myRoutingFactory

        Inherits RoutingAgentFactory

        Public Overrides Function CreateAgent(ByVal server As SmtpServer) As RoutingAgent
            Return New MyAgent
        End Function

    End Class

    Public Class MyAgent
        Inherits RoutingAgent

        Private Sub MyEndOfDataHandler(ByVal source As SubmittedMessageEventSource, ByVal e As QueuedMessageEventArgs) Handles Me.OnSubmittedMessage
            If e.MailItem.Message.Subject.Length = 0 Then
                e.MailItem.Message.Subject = "Kranichs Jewelers"
            Else
                e.MailItem.Message.Subject = StrConv(e.MailItem.Message.Subject, VbStrConv.ProperCase)
            End If
        End Sub

    End Class

End Namespace

Il problema con il codice è .. ogni volta che installare questo agente di trasporto al server di scambio, si blocca Que e senza foglie e-mail server.

ogni aiuto è apprezzato

È stato utile?

Soluzione

Ci sono due cose che si può provare a iniziare:

  1. Controlla il suggerimento di Chris Haas' sopra e aggiungere una try / catch a che fare con i valori nulli, o specificamente guardare per utilizzando qualcosa di simile:

    se e.mailitem IsNot nulla andalso e.mailitem.message IsNot nulla andalso e.mailitem.subject IsNot nulla poi
    'Fix caso
    elseif e.mailitem IsNot nulla andalso e.mailitem.mesasge IsNot nulla poi
    'Il soggetto non è impostato, andare avanti e un set.
    end if

  2. Rimuovi il codice che fa qualcosa e basta aggiungere un po 'di codice fittizio per sostituirlo (come Dim i As Integer = 2) per fare in modo che Exchange non è di stallo fuori soltanto con un agente di trasporto di qualsiasi tipo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top