Hộp thư không có sẵn. Phản hồi của máy chủ là: 5.7.1 Không thể chuyển tiếp cho abc@xyz.com [đã đóng]


84

Tôi nhận được thông báo " Hộp thư không khả dụng. Phản hồi của máy chủ là: 5.7.1 Không thể chuyển tiếp cho abc@xyz.com " khi tôi cố gắng gửi thư bằng ASP.NET. Trang web được triển khai trên máy chủ IIS7, Windows 2008.

Trang web hoạt động tốt trên IIS6 và Windows 2003 Server . Tôi đã triển khai nó trên IIS7, 2008 nó đã bắt đầu cho tôi lỗi này.

Có ai có kinh nghiệm này trước khi?



Stack Overflow là một trang dành cho các câu hỏi về lập trình và phát triển. Sử dụng một trang web khác trên mạng Stack Exchange .
jww

Câu trả lời:


115

Aahh hiểu rồi ... Tôi hiểu rồi :)

Cảm ơn Christopher, đề xuất của bạn là chính xác.

Nhưng, việc tìm kiếm "Máy chủ ảo SMTP mặc định" rất khó;)

Ngay cả khi bạn sử dụng IIS7 để triển khai trang web của mình, bạn phải mở Trình quản lý IIS6 để cấu hình máy chủ SMTP (tại sao?).

Tôi đã định cấu hình máy chủ SMTP như sau để mọi thứ hoạt động:

  1. Mở Trình quản lý IIS6 bằng Bảng điều khiển -> Công cụ quản trị.
  2. Mở thuộc tính Máy chủ ảo SMTP.
  3. Trên tab Chung, Đặt địa chỉ IP của máy chủ Web thay vì "Tất cả chưa được gán".
  4. Trong tab Access, nhấp vào nút Relay, thao tác này sẽ mở hộp thoại Relay Restrictions.
  5. Trong danh sách máy tính chuyển tiếp, hãy thêm địa chỉ IP lặp lại tức là 127.0.0.1 và địa chỉ IP của máy chủ Web, để chúng có thể chuyển / chuyển tiếp email thông qua máy chủ SMTP.

3
Lý do nhu cầu này phải được quản lý trong IIS 6 là vì IIS 7.x không có thành phần máy chủ SMTP riêng của mình, vì vậy nó sử dụng IIS 6.
MemeDeveloper

5
Trong web.config của tôi, tôi đã đề cập đến máy chủ smtp của mình bằng tên "localhost". Nếu tôi làm theo bước 3, giải pháp này không thành công; nếu tôi bỏ qua bước 3 thì nó vẫn hoạt động. Cảm ơn :)
Paul Suart

1
Điều này cũng áp dụng cho IIS8 và máy chủ 2012
Isaac Bolinger

Chúng tôi đang sử dụng bộ chuyển tiếp để gửi email qua tài khoản trong Office 365. Tôi vẫn cần cài đặt máy chủ smtp trong IIS 6 mặc dù chúng tôi không sử dụng máy chủ smtp của máy chủ web. Đây là trên Windows Server 2016 đang chạy IIS 10. Có ai có bất kỳ đề xuất hoặc giải pháp nào cho vấn đề này không? Cảm ơn bạn trước!
Nathan

Cảm ơn rât nhiều! Đã giải quyết vấn đề của tôi.
Nanou Ponette,

20

đây là câu trả lời ... Cài đặt IIS

IIS -> Máy chủ ảo SMTP mặc định -> Thuộc tính -> Quyền truy cập -> Hạn chế chuyển tiếp chỉ thêm hoặc loại trừ các IP bạn quan tâm, sẽ giải quyết được vấn đề.


2
"Máy chủ ảo SMTP mặc định" ở đâu? Tôi đang sử dụng IIS7. Trong IIS6 có "Máy chủ ảo SMTP" nhưng trong IIS & nó thì không?
Vinod T. Patil

18

Tôi đã gặp phải vấn đề tương tự và đã làm theo các bước (được viết rất rõ ràng) trong câu trả lời của Vinod, tuy nhiên điều này sau đó tạo ra một lỗi khác:

Không thể đọc dữ liệu từ kết nối truyền tải: net_io_connectionclosed

Tôi đã đào sâu hơn một chút và tìm kiếm xung quanh và (trong khi tôi không chắc tại sao điều này lại hiệu quả) Tôi đã giải quyết nó bằng cách:
- Quay lại bảng điều khiển quản lý IIS6.0
- Mở thuộc tính Máy chủ ảo SMTP
- Trên tab Chung, thay đổi 'IP Địa chỉ: 'đang đặt lại thành' (Tất cả chưa được gán) '

Không chắc tại sao điều này lại hiệu quả, nhưng hy vọng sẽ giúp ích cho ai đó đối mặt với vấn đề tương tự trong tương lai.


15

Như một bức tranh có giá trị ngàn lời nói ..

Khi bạn tìm thấy trình quản lý IIS6 (tôi thấy rằng tìm kiếm IIS có thể trả về 2 kết quả), hãy chuyển đến thuộc tính máy chủ SMTP rồi 'Truy cập' rồi nhấn nút chuyển tiếp.

Sau đó, bạn có thể chọn tất cả hoặc chỉ cho phép một số ip như 127.0.0.1

Chuyển tiếp SMTP


5

Cảm ơn Vinod vì câu trả lời được trình bày tốt.

Tôi gặp lỗi tương tự như Mick Byrne khi tôi làm theo các bước ở trên. Việc chuyển nó trở lại All Unassigned đã sắp xếp nó nhưng tôi cũng phải điều chỉnh một số thứ khác:

  • Thêm người dùng mà trang web của tôi đang chạy dưới quyền những người dùng trên tab Bảo mật trong Máy chủ ảo SMTP.
  • Đã thay đổi giá trị trong thuộc tính mailSettings> network> host trong web.config của tôi thành IP máy chủ cụ thể (ví dụ: 192.168.100.120) trái ngược với localhost (trỏ tới 127.0.0.1 trong tệp máy chủ).

Hy vọng điều này sẽ tiết kiệm cho ai đó một vài phút lộn xộn.


4

Tôi đã có thể khắc phục sự cố này bằng cách thay đổi cài đặt thư trong phần system.net của web.config của tôi:

<mailSettings>
    <smtp deliveryMethod="Network">
        <network host="yourserver" defaultCredentials="true"/>
    </smtp>
</mailSettings>

2

Nếu bạn có Exchange 2010 :

(Trong trường hợp của tôi, thông báo lỗi không chứa "for abc@xyz.com")

Điều này cho thấy cách thêm trình kết nối nhận: http://exchangeserverpro.com/how-to-configure-a-relay-connector-for-exchange-server-2010/

Nhưng tôi cũng cần thực hiện một bước được tìm thấy tại đây: http://recover-email.blogspot.com.au/2013/12/how-to-solve-exchange-smtp-server-error.html

  • Đi tới Exchange Management Shell và chạy lệnh
  • Get-GetConnector "JiraTest" | Add-ADPermission -User "NT AUTHORITY \ ANONYMOUS LOGON" -ExtendedRights "ms-Exch-SMTP-Accept-Any-Recipient"

Trong khi làm việc với điều này, tôi đã chạy phần sau trên bảng điều khiển PowerShell của máy chủ bị ảnh hưởng cho đến khi lỗi biến mất:

Send-MailMessage -From "myemail@server.com.au" -To "myemail@server.com.au" -Subject "Test Email" -Body "This is a test"

1

Muốn chia sẻ những gì gây ra lỗi trong trường hợp của tôi. Dành vài giờ để tìm ra điều này, vì vậy hy vọng nó sẽ giúp ai đó tiết kiệm thời gian.

Thật kỳ lạ, lỗi đã xuất hiện khi Enable drop directory quotacài đặt được bật cho miền.

nhập mô tả hình ảnh ở đây

Tôi không phải là chuyên gia và không biết giải thích kỹ thuật, nhưng việc bỏ qua cài đặt được đề cập đã giải quyết vấn đề.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.