Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET EXCHANGE传输代理_Vb.net_Exchange Server 2007_Exchange Transport Agents - Fatal编程技术网

VB.NET EXCHANGE传输代理

VB.NET EXCHANGE传输代理,vb.net,exchange-server-2007,exchange-transport-agents,Vb.net,Exchange Server 2007,Exchange Transport Agents,我使用c#发布了相同的问题,但没有收到任何答案,因此我将尝试使用VB发布相同的问题 我正在尝试创建一个传输代理来验证发送电子邮件的主题行是否为空,如果为空,则会在主题行中添加“kranichs jewelers”。如果它不是空的,则会将传出电子邮件的格式设置为正确 vb中的代码: Imports System Imports System.Collections.Generic Imports System.Text Imports Microsoft.Exchange.Data.Tran

我使用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服务器时,que将冻结,并且没有电子邮件离开服务器


感谢您的帮助

您可以尝试从两件事开始:

  • 检查上面Chris Haas的建议,或者添加一个try/catch来处理空值,或者使用如下方法特别注意:

    如果e.mailitem不为空,e.mailitem.message也不为空,e.mailitem.subject也不为空,则
    '修复案例
    否则,如果e.mailitem不是零,并且e.mailitem.mesasge也不是零,则
    '主题尚未设置,请继续设置一个。
    如果结束

  • 删除执行任何操作的代码,只需添加一些伪代码来替换它(如Dim i as integer=2),以确保Exchange不会因为拥有任何类型的传输代理而停止


  • 您是否尝试过将代码包装在try/catch块中并写入收到的任何错误?当我以前写这些(过去称为传输同步)时,它们比NT服务更难调试(至少那些崩溃!)。可能是
    Subject
    为空时为空,所以你得到了一个NRE。我添加了一个try-catch,并将if-case切换为isnothing等。它现在通过将Subject格式化为正确的大小写来工作,但是,如果主题不包含任何内容,它仍然会将其保留为空。有什么想法吗?只有设置了所有这些属性,我上面的If语句才是真的。如果主题为空,则要单独测试它是否为空字符串,或者它是否为空(即:根本未设置)。我编辑了答案,以便有一个更长的版本可以做到这一点。:)