c# - saber - cual es el dominio de un correo exchange
¿Cómo envío correos electrónicos fuera de mi dominio con Exchange 2007 yc# (4)
Puedo enviar correos electrónicos usando el típico código SMTP de C # en Exchange 2007, siempre y cuando las direcciones desde y hacia mi estén dentro de mi dominio.
Tan pronto como trato de enviar correos electrónicos fuera del dominio obtengo:
Detalles de la excepción: System.Net.Mail.SmtpFailedRecipientException: Buzón no disponible. La respuesta del servidor fue: 5.7.1 No se puede retransmitir
¿Cómo puedo obtener un intercambio para aceptar mi correo electrónico y enviarlo a internet?
¿Ha configurado el servidor de intercambio para permitir retransmisiones desde su servidor web? Tuve el mismo problema al cambiar a Exchange 2007.
Autenticar al servidor de intercambio.
http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.credentials.aspx
DefaultNetworkCredentials devuelve cadenas vacías para nombre de usuario, etc. y causa esta excepción ...
Aquí hay un ejemplo , y aquí hay otro de envío de mensajes autenticados con System.Net.Mail.
Necesitará que su administrador de intercambio configure el intercambio para permitir el envío fuera del dominio. En mi experiencia, han sido reacios a hacerlo debido a las preocupaciones relacionadas con el spam.
Si es ''para uso limitado, puede configurar reglas del lado del servidor a cambio de reenviar mensajes que cumplan ciertos criterios fuera del dominio. Es posible que también puedas usar VBA en estos, para cosas bonitas, pero no estoy seguro.
Pruebe el # 2 ... ¿Qué le parece usar una carpeta de recogida de Exchange ? Son una forma más rápida de enviar correos electrónicos a través de Exchange porque solo crea el correo electrónico y lo coloca en la carpeta, sin esperar para conectarse al servidor o esperar una respuesta. Además, creo que se saltea todo el problema del relé.
Configura tu SmtpClient así:
SmtpClient srv = new SmtpClient("exchsrv2007", 25) {
DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory,
PickupDirectoryLocation = "//exchsrv2007/PickupFolder"
}
...