2012-08-22 5 views
10

So habe ich dieses sehr einfaches Programm, die E-Mail senden versucht, aber ich erhalte immerFehler ‚5.7.1 Client hat keine Berechtigung‘, während E-Mail von Code Senden

Mailbox nicht verfügbar. Die Serverantwort war: 5.7.1 Client nicht Berechtigungen wie dieser Absender senden

Hier ist mein Programm

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

Ich weiß, dass die Anmeldeinformationen arbeiten, wenn ich SMTP Test Tool 3.0 ausführen mit die gleichen Daten, alles funktioniert super.

enter image description here

Hier einige Screenshots auf einem Connector für meine IP auf dem Exchange-Server

enter image description here

enter image description here

Wer irgendwelche Ideen gesetzt bekommen, was würde dies verursachen Fehler in meinem Code, aber nicht im einfachen SMTP-Test-Tool? Fehle ich irgendwo eine Art von Authentifizierungsoption? Ich habe vierfach überprüft, alle Informationen sind korrekt und identisch an beiden Stellen und es funktioniert im Tool, aber nicht im Code.

Antwort

10

Ich fand das Problem, ich musste das Kontrollkästchen 'Akzeptiere jeden Absender' für authentifizierte Benutzer aktivieren.

enter image description here

Weitere Informationen hier: http://technet.microsoft.com/en-us/library/aa997170(EXCHG.140).aspx

+1

Das hat mich total gerettet. Danke vielmals! Auch, was es wert ist - diese Fähigkeit funktionierte gut mit unserer Exchange 2003-Box. Als wir auf 2010 aktualisiert haben, hat es nicht mehr funktioniert. Das hat mich zu diesem Artikel geführt.Die Option 'Irgendeinen Absender akzeptieren' muss entweder neu bei Ex2010 sein oder die Option beim Upgrade zurücksetzen. –

+0

Vielen Dank! Ich musste dies auf dem Client Frontend Connector und auch dem Client Proxy Connector tun! – partyd

3

Ich weiß, dieser Thread ist ziemlich alt, aber ich habe das gleiche Problem und habe meinen Kopf für eine lange Zeit zu kratzen. In meinem Fall hat der Mail-Server den "fremden" Absender nicht akzeptiert. Wenn Sie sich zum Beispiel in der Domäne @ sample.com befinden, ist es unter Umständen unmöglich, E-Mails von "[email protected]" zu senden, da der Server dies ablehnt mit 5.7.1 Fehler. Also, 2 Dinge sind hier wichtig: 1) Korrekte Anmeldeinformationen, die verwendet werden, um eine Verbindung zum Server herzustellen; 2) Wert des Feldes "Von", da Ihr Server E-Mails von Absendern ablehnen kann, die zu einer anderen Domäne gehören. Mit anderen Worten, wenn Sie sich in der Domäne @ sample.com befinden, versuchen Sie, dies auch als neue MailMessage {From "[email protected]"} hinzuzufügen.

+1

Einrichten der von Adresse als die gleichen, die die Anmeldeinformationen sendet .. Hat mir geholfen. Vielen Dank – Muhammedh

-1

Ich glaube, Sie UseDefaultCredentials auf true gesetzt haben: Powershell-Code

#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

Ich hatte das gleiche Problem. Ich habe die SMTP-Einstellungen in einer separaten Konsolenanwendung getestet und es hat gut funktioniert. Nach einigen googeln, erkennen ich, mein Problem war die Tatsache, dass ich zweimal von der Adresse angegeben hatte, einmal in meiner config:

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

Und auch in meinem Code:

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

der von der Adresse Entfernen von Der Code hat das Problem behoben.