VB.NET INTERCAMBIO agente de transporte
-
11-10-2019 - |
Pregunta
Me registró la misma pregunta usando C #, pero no recibió ninguna respuesta, por lo que voy a tratar de publicar la misma pregunta usando VB
Estoy intentando crear un agente de transporte que verifica la línea de asunto del correo electrónico de salida no está vacía, si es entonces que añade 'Kranichs joyeros a la línea de asunto. Si no está vacío, propercases el formato del correo electrónico saliente
el código que tengo en 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
El problema con el código es .. cada vez que instalar este agente de transporte al servidor del intercambio, la cola se congela y no hay hojas de correo electrónico del servidor.
cualquier ayuda se agradece
Solución
Hay dos cosas que puede intentar empezar:
-
Comprobar sugerencia de Chris Haas arriba y ya sea añadir un try / catch para tratar con nulos, o específicamente para ver que el uso de algo como esto:
Si e.mailitem isnot nada andalso e.mailitem.message isnot nada andalso e.mailitem.subject isnot nada, entonces
'Fix caso
elseif e.mailitem isnot nada andalso e.mailitem.mesasge isnot nada, entonces
"El sujeto no está establecido, adelante y un juego.
final si -
Eliminar el código que hace nada y sólo añadir un poco de código ficticio para reemplazarla (como Dim i As Integer = 2) para asegurarse de que Exchange no se está estancando a cabo sólo por tener un agente de transporte de cualquier tipo.