2012-08-22 31 views
10

Vì vậy, tôi có điều này chương trình rất cơ bản đó là cố gắng để gửi một email, nhưng tôi cứ bị'5.7.1 Khách hàng không được phép' lỗi khi gửi email từ mã

Mailbox không có. Câu trả lời máy chủ là: 5.7.1 Khách hàng không có quyền gửi như gửi này

Dưới đây là chương trình của tôi

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

Tôi biết các thông tin làm việc, nếu tôi chạy SMTP Kiểm tra Tool 3.0 với cùng một dữ liệu, mọi thứ đều hoạt động tốt.

enter image description here

Dưới đây là một số ảnh chụp màn hình trên một receive connector thiết lập cho IP của tôi trên máy chủ trao đổi

enter image description here

enter image description here

Bất kỳ ai có bất cứ ý tưởng gì sẽ gây ra điều này lỗi trong mã của tôi, nhưng không phải trong công cụ kiểm tra SMTP đơn giản? Tôi có thiếu một số loại tùy chọn xác thực ở đâu đó không? Tôi đã kiểm tra bốn lần tất cả các thông tin là chính xác và giống hệt nhau ở cả hai nơi và nó hoạt động trong công cụ nhưng không phải trong mã.

Trả lời

10

Tôi đã tìm thấy sự cố, tôi cần chọn hộp 'Chấp nhận bất kỳ người gửi nào' cho người dùng được xác thực.

enter image description here

biết thêm thông tin ở đây: http://technet.microsoft.com/en-us/library/aa997170(EXCHG.140).aspx

+1

Điều này đã cứu tôi hoàn toàn. Cảm ơn một TON! Ngoài ra, đối với những gì nó có giá trị - khả năng này đã làm việc tốt với hộp Exchange 2003 của chúng tôi. Khi chúng tôi cập nhật đến năm 2010, nó ngừng hoạt động. Điều đó đã dẫn tôi đến bài viết này.Tùy chọn 'Chấp nhận bất kỳ người gửi' nào phải là mới với Ex2010 hoặc tùy chọn này đã đặt lại tùy chọn với bản nâng cấp. –

+0

Cảm ơn một tấn! Tôi cần phải làm điều này trên Connector của Client Frontend và cũng là Connector Client Proxy! – partyd

3

Tôi biết chủ đề này là khá cũ, nhưng tôi chỉ nhận được những rắc rối tương tự và đã được gãi đầu của tôi trong một thời gian dài. Trong trường hợp của tôi, máy chủ thư không chấp nhận người gửi "nước ngoài", do đó, ví dụ: nếu bạn đang ở trong miền @ sample.com, có thể không gửi được thư từ "[email protected]", vì máy chủ sẽ từ chối điều này với lỗi 5.7.1. Vì vậy, 2 điều quan trọng ở đây: 1) Thông tin xác thực sẽ được sử dụng để kết nối với máy chủ; 2) Giá trị của trường "Từ", vì máy chủ của bạn có thể từ chối thư từ người gửi thuộc về tên miền khác. Nói cách khác, nếu bạn đang ở trong miền @ sample.com, hãy thử thêm MailMessage mới này cũng như {From = "[email protected]"}.

+1

thiết lập địa chỉ từ giống như địa chỉ gửi thông tin đăng nhập .. Đã giúp tôi. Cảm ơn – Muhammedh

-1

Tôi nghĩ rằng bạn phải thiết lập UseDefaultCredentials true: xem mã 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

tôi đã cùng một vấn đề. Tôi đã kiểm tra các thiết lập SMTP trong một ứng dụng giao diện điều khiển riêng biệt và nó hoạt động tốt. Sau khi một số googling, tôi nhận ra vấn đề của tôi đã được thực tế rằng tôi đã xác định từ địa chỉ hai lần, một lần vào cấu hình của tôi:

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

Và cũng trong mã của tôi:

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

Loại bỏ các từ địa chỉ từ mã đã giải quyết vấn đề.

Các vấn đề liên quan