Вопрос

Я разместил тот же вопрос, используя 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 и никакая электронная почта покидает сервер.

Любая помощь ценится

Это было полезно?

Решение

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

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

    Если e.mailitem не является ничего не является andalso e.mailitem.message не является ничего, не является andalso e.mailitem.subject не является ничего, тогда
    'Исправить корпус
    elseif e.mailitem не является чем -то нельзя.
    «Тема не установлен, иди и установите один.
    конец, если

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top