Vb.net Exchange Transport Agent
-
11-10-2019 - |
Вопрос
Я разместил тот же вопрос, используя C#, но не получил никакого ответа, поэтому я попытаюсь опубликовать тот же вопрос, используя VB
Я пытаюсь создать транспортного агента, который проверяет строку темы исходящего электронного письма, не пуста, если это так, то он добавляет «ювелирные изделия Kranichs» к строке темы. Если он не пуст, он пропагандирует формат исходящего электронного письма
Код, который у меня есть в 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
Проблема с кодом состоит в том, чтобы .. всякий раз, когда я устанавливаю этот транспортный агент на сервер Exchange, Que Freezes и никакая электронная почта покидает сервер.
Любая помощь ценится
Решение
Есть две вещи, которые вы можете попытаться начать:
Проверьте предложение Криса Хааса выше и либо добавьте попытку/поймать, чтобы разобраться с Nulls, либо, в частности, следите за этим, используя что -то вроде этого:
Если e.mailitem не является ничего не является andalso e.mailitem.message не является ничего, не является andalso e.mailitem.subject не является ничего, тогда
'Исправить корпус
elseif e.mailitem не является чем -то нельзя.
«Тема не установлен, иди и установите один.
конец, еслиУдалите код, который что -то делает, и просто добавьте немного фиктивного кода, чтобы заменить его (например, Dim I как integer = 2), чтобы убедиться, что обмен не останавливается, просто имея транспортного агента любого рода.