我使用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

代码的问题是..每当我将此传输代理安装到Exchange Server上时,Que冻结并且没有电子邮件离开服务器。

任何帮助都将受到赞赏

有帮助吗?

解决方案

您可以尝试开始两件事:

  1. 检查上面的克里斯·哈斯(Chris Haas)的建议,然后添加尝试/捕获以处理nulls,或者使用类似的内容专门观看:

    如果e.mailitem并不是什么都不是Andalso e.mailitem.message note nothing Andalso e.mailitem.Mubject note note Is Is Is Is Is Is Is
    修复案例
    elseif e.mailitem并不是什么都不是Andalso e.mailitem.Mesasge,没有什么
    '主题没有设定,继续设置一个。
    万一

  2. 删除执行任何操作的代码,然后添加一些虚拟代码来替换它(例如Dim I As Integer = 2),以确保交换不会仅通过拥有任何类型的运输代理而停滞不前。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top