2012-08-22 6 views
10

Così ho questo programma molto semplice che sta tentando di inviare una e-mail, ma io continuo a ricevere'client 5.7.1 non ha il permesso' errore durante l'invio di e-mail dal codice

cassetta postale non disponibile. Risposta del server: 5.7.1 Il client non dispone delle autorizzazioni per inviare come questo mittente

Ecco il mio programma

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")); 
} 

So che le credenziali di lavoro, se corro SMTP Test Tool 3.0 con gli stessi dati tutto funziona alla grande.

enter image description here

Ecco alcune schermate su un connettore di ricezione impostato per il mio IP sul server di scambio

enter image description here

enter image description here

Qualcuno ha tutte le idee che cosa potrebbe causare questo errore nel mio codice, ma non nel semplice strumento di test SMTP? Mi manca qualche tipo di opzione di autenticazione da qualche parte? Ho quadruplo controllato tutte le informazioni sono corrette e identiche in entrambi i posti e funziona nello strumento ma non nel codice.

risposta

10

Ho trovato il problema, avevo bisogno di spuntare la casella "Accetta qualsiasi mittente" per gli utenti autenticati.

enter image description here

Maggiori informazioni qui: http://technet.microsoft.com/en-us/library/aa997170(EXCHG.140).aspx

+1

Questo mi ha completamente salvato. Grazie mille! Inoltre, per quello che vale - questa capacità funzionava bene con la nostra scatola di Exchange 2003. Quando siamo aggiornati al 2010, ha smesso di funzionare. Questo mi ha portato a questo articolo.L'opzione 'Accetta qualsiasi mittente' deve essere stata nuova con Ex2010 o resettare l'opzione con l'aggiornamento. –

+0

Grazie mille! Avevo bisogno di farlo sul Client Frontend Connector e anche sul Client Proxy Connector! – partyd

3

so che questa discussione è piuttosto vecchio, ma ho appena avuto lo stesso problema e sono stati graffiare la mia testa per molto tempo. Nel mio caso, il server di posta non ha accettato il mittente "straniero", quindi ad esempio se si è nel dominio @ sample.com, potrebbe essere impossibile inviare posta da "[email protected]", perché il server rifiuterà questo con 5.7.1 errore. Quindi, 2 cose sono importanti qui: 1) credenziali corrette che saranno utilizzate per connettersi al server; 2) Valore del campo "Da", in quanto il tuo server può rifiutare le email dal mittente che appartiene a un altro dominio. In altre parole, se sei nel dominio @ sample.com, prova ad aggiungere anche questo nuovo MailMessage {From = "[email protected]"}.

+1

impostando l'indirizzo da come lo stesso che invia le credenziali .. Mi ha aiutato. Grazie – Muhammedh

-1

Credo che bisogna impostare useDefaultCredentials true: vedi codice 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

Ho avuto lo stesso problema. Ho provato le impostazioni SMTP in un'applicazione console separata e ha funzionato bene. Dopo un po 'googling, ho realizzato il mio problema era il fatto che avevo indicato l'indirizzo del mittente per due volte, una volta nella mia configurazione:

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

E anche nel mio codice:

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

Rimozione del dall'indirizzo da il codice ha risolto il problema.