2009-01-14 14 views
5

? Puedo enviar correos electrónicos usando el código SMTP C# típico en Exchange 2007, siempre y cuando las direcciones desde y hacia estén dentro de mi dominio.¿Cómo envío correos electrónicos fuera de mi dominio con Exchange 2007 y C#

Tan pronto como intento enviar mensajes de correo electrónico fuera del dominio consigo:

Detalles de la excepción: System.Net.Mail.SmtpFailedRecipientException: Buzón disponible. La respuesta del servidor fue: 5.7.1 Imposible retransmitir

¿Cómo puedo obtener un intercambio para aceptar mi correo electrónico y enviarlo a internet?

Respuesta

8

Pruebe el n. ° 2 ... ¿Qué le parece usar un Exchange Pickup Folder? 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é.

Configurar youur SmtpClient así:

SmtpClient srv = new SmtpClient("exchsrv2007", 25) { 
    DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, 
    PickupDirectoryLocation = "\\exchsrv2007\PickupFolder" 
} 
... 
+0

Casi allí ... pero ¿puede acceder a una ruta de red así? – jmcd

+0

No por defecto, la ruta de red debería ser compartida y el proceso ASP .NET se está ejecutando como (o la suplantación) necesitaría permisos para acceder al directorio. – DavGarcia

+0

+1 para una solución de ahorro de tiempo así. Resuelve mi problema a la perfección. – Mozy

1

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.

+0

+1 Por lo general, las empresas más grandes tienen varios servidores de cambio y al menos uno se le permite reenviar el correo electrónico fuera del dominio. – scottm

+0

¿Puedes decir que la mayor parte de mi experiencia con Exchange ha sido con empresas más pequeñas? D – AlexCuse

6

Autenticar al servidor de intercambio.

http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.credentials.aspx


DefaultNetworkCredentials vuelve cadenas vacías de nombre de usuario y etc causas de esta excepción ...

Aquí se presenta una example, y aquí es another de enviar el mensaje autenticado con System.Net.Mail.

+0

¡No sabía que pudieras solucionarlo de esta manera! Gracias :) – AlexCuse

+0

DefaultNetworkCredentials devuelve cadenas vacías para nombre de usuario, etc. y causa esta excepción: Buzón no disponible. La respuesta del servidor fue: 5.7.1 El cliente no tiene permisos para enviar como este remitente – jmcd

+0

+1 'client.Credentials = CredentialCache.DefaultNetworkCredentials;' resolvió mi problema de retransmisión. Relés bien usando esto. –

0

¿Ha configurado el servidor de intercambio en allow relays desde su servidor web? Tuve el mismo problema al cambiar a Exchange 2007.

+0

He seguido este artículo y no hizo ninguna diferencia :( – jmcd

Cuestiones relacionadas