VB.NET SCAMBIO Transport Agent
-
11-10-2019 - |
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 ??p>
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
Soluzione
Ci sono due cose che si può provare a iniziare:
-
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 -
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.