VB.NET ТРАНСПОРТНЫЙ АГЕНТ
Я отправил тот же вопрос, используя C#, но не получил никакого ответа, поэтому я попытаюсь опубликовать тот же вопрос, используя VB
я пытаюсь создать транспортный агент, который проверяет, что строка темы исходящей электронной почты не пуста; если это так, то он добавляет "kranichs jewelers" в строку темы. Если он не пустой, он соответствует формату исходящей электронной почты.
код, который я имею в 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
проблема с кодом заключается в том, что.. всякий раз, когда я устанавливаю этот транспортный агент на сервер обмена, очередь останавливается, и электронная почта не покидает сервер.
любая помощь приветствуется
1 ответ
Есть две вещи, которые вы можете попробовать начать:
Проверьте предложение Криса Хааса выше и добавьте try / catch для работы с нулями, или специально следите за ним, используя что-то вроде этого:
если e.mailitem не является ничем, а также e.mailitem.message не является ничем, а также e.mailitem.subject не является ничем, то
'Исправить случай
иначе e.mailitem не является ничем, а также e.mailitem.mesasge не является ничем
"Тема не установлена, иди и поставь.
конец, еслиУдалите код, который что-либо делает, и просто добавьте некоторый фиктивный код для его замены (например, Dim i as integer = 2), чтобы убедиться, что Exchange не останавливается, просто имея какой-либо агент транспорта.