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 ответ

Решение

Есть две вещи, которые вы можете попробовать начать:

  1. Проверьте предложение Криса Хааса выше и добавьте try / catch для работы с нулями, или специально следите за ним, используя что-то вроде этого:

    если e.mailitem не является ничем, а также e.mailitem.message не является ничем, а также e.mailitem.subject не является ничем, то
    'Исправить случай
    иначе e.mailitem не является ничем, а также e.mailitem.mesasge не является ничем
    "Тема не установлена, иди и поставь.
    конец, если

  2. Удалите код, который что-либо делает, и просто добавьте некоторый фиктивный код для его замены (например, Dim i as integer = 2), чтобы убедиться, что Exchange не останавливается, просто имея какой-либо агент транспорта.

Другие вопросы по тегам