2012-08-22 32 views
10

Así que tengo este programa muy básico que está intentando enviar un correo electrónico, pero seguir recibiendo'5.7.1 El cliente no tiene permiso' error al enviar el correo electrónico de código

de correo no disponible. La respuesta del servidor era: 5.7.1 El cliente no tiene permisos que enviar como este remitente

Aquí está mi programa

static void Main(string[] args) 
{ 
    SmtpClient client = new SmtpClient("Server", 25); 
    client.UseDefaultCredentials = false; 
    client.DeliveryMethod = SmtpDeliveryMethod.Network; 
    client.Credentials = new NetworkCredential("UserName", "Password"); 
    client.Send(new MailMessage("[email protected]","Recipient")); 
} 

Conozco las credenciales de trabajo, si me quedo herramienta de prueba SMTP 3.0 con los mismos datos todo funciona bien.

enter image description here

Aquí es algunas capturas de pantalla en un conector de recepción configurado para mi IP en el servidor de intercambio

enter image description here

enter image description here

Alguien tiene alguna idea de lo que podría estar causando esto error en mi código, pero no dentro de la simple herramienta de prueba SMTP? ¿Me estoy perdiendo algún tipo de opción de autenticación en alguna parte? He comprobado cuádruplemente toda la información es correcta e idéntica en ambos lugares y funciona en la herramienta, pero no en el código.

Respuesta

10

Encontré el problema, necesitaba marcar la casilla 'Aceptar remitente' para los usuarios autenticados.

enter image description here

Más información aquí: http://technet.microsoft.com/en-us/library/aa997170(EXCHG.140).aspx

+1

Esto me salvó totalmente. ¡Gracias una tonelada! Además, por lo que vale, esta capacidad funcionaba bien con nuestra caja de Exchange 2003. Cuando actualizamos a 2010, dejó de funcionar. Eso me llevó a este artículo.La opción 'Aceptar cualquier remitente' debe haber sido nueva con Ex2010 o restablecer la opción con la actualización. –

+0

¡Muchas gracias! ¡Tenía que hacer esto en el conector de cliente frontend y también en el conector de cliente proxy! – partyd

3

sé que este hilo es bastante antiguo, pero acabo de recibir el mismo problema y han estado rascándose la cabeza durante mucho tiempo. En mi caso, el servidor de correo no aceptó el remitente "extranjero", por lo que, por ejemplo, si está en el dominio @ sample.com, podría ser imposible enviar correo desde "[email protected]", porque el servidor rechazará este con 5.7.1 error. Entonces, 2 cosas son importantes aquí: 1) Corregir las credenciales que se usarán para conectarse al servidor; 2) Valor del campo "Desde", ya que su servidor puede rechazar correos del remitente que pertenece a otro dominio. En otras palabras, si se encuentra en el dominio @ sample.com, intente agregar esto como nuevo MailMessage {From = "[email protected]"}.

+1

configurando la dirección from como la misma que envía las credenciales .. Me ayudó. Gracias – Muhammedh

-1

Yo creo que hay que establecer UseDefaultCredentials a cierto: véase el código de PowerShell

#SMTP server name 
$smtpServer = "abcd.com.au" 

#Creating a Mail object 
$msg = new-object Net.Mail.MailMessage 

#Creating SMTP server object 
$smtp = new-object Net.Mail.SmtpClient($smtpServer) 
$smtp.UseDefaultCredentials = $true 
0

que tenía el mismo problema. Probé la configuración de SMTP en una aplicación de consola separada y funcionó bien. Después de algunas google, me di cuenta de que mi problema era el hecho de que yo había especificado el de la dirección dos veces, una vez en mi config:

<smtp deliveryMethod="Network" from="[email protected]"> 

Y también en mi código:

mail.From = new MailAddress("[email protected]"); 

Extracción de la de la dirección de el código resolvió el problema

Cuestiones relacionadas