0

c#を使用して同じ質問を投稿しましたが、回答が得られなかったため、VBを使用して同じ質問を投稿しようとしています。

送信メールの件名が空でないことを確認するトランスポートエージェントを作成しようとしています。空の場合は、件名に「kranichsjewelers」が追加されます。空でない場合は、送信メールの形式を適切に処理します

私が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サーバーにインストールするたびに、キューがフリーズし、サーバーから電子メールが送信されないことです。

助けていただければ幸いです

4

1 に答える 1

0

最初に試すことができることが2つあります。

  1. 上記のChrisHaasの提案を確認し、nullを処理するためにtry / catchを追加するか、次のようなものを使用して具体的に監視します。

    e.mailitemが何もない場合、およびe.mailitem.messageが何もない場合、およびe.mailitem.subjectが何もない 場合、
    'ケースを修正 します。 1つ設定します。 終了する場合


  2. 何かを実行するコードを削除し、ダミーコードを追加して(整数= 2のDimiのように)、あらゆる種類のトランスポートエージェントを使用するだけでExchangeが停止しないようにします。

于 2011-01-14T18:08:28.577 に答える