2009-01-14 100 views
5

只要發件人地址和發件人地址都在我的域中,我就可以使用跨Exchange 2007的典型C#SMTP代碼發送電子郵件。如何使用Exchange 2007和c#發送域外電子郵件?#

當我嘗試發送域我到外面電子郵件:

異常詳細信息:System.Net.Mail.SmtpFailedRecipientException:郵箱不可用。服務器響應是:5.7.1無法中繼

如何獲得交換接受我的電子郵件並將其發送到互聯網?

回答

8

嘗試#2 ...如何使用Exchange Pickup Folder代替?它們是通過Exchange發送電子郵件的更快捷的方式,因爲它只是創建電子郵件並將其放入文件夾中,無需等待連接到服務器或等待回覆。另外我認爲它跳過了整個接力問題。

配置youur SmtpClient像這樣:

SmtpClient srv = new SmtpClient("exchsrv2007", 25) { 
    DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, 
    PickupDirectoryLocation = "\\exchsrv2007\PickupFolder" 
} 
... 
1

您需要讓您的交換管理員配置交換以允許在域外發送。根據我的經驗,由於垃圾郵件問題,他們一直不願意這樣做。

如果它的'限制使用,您可以設置服務器端規則來交換符合特定條件的郵件在域外。你也許可以在這些中使用VBA,但是我不確定。

+0

+1通常規模較大的公司有多個Exchange服務器和至少一個被允許轉發外域的電子郵件。 – scottm 2009-01-14 20:18:11

+0

您能否告訴我大部分與Exchange有關的經驗都與小公司有關:D – AlexCuse 2009-01-15 15:19:52

6

向交換服務器進行身份驗證。

http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.credentials.aspx


DefaultNetworkCredentials返回用戶名等 空字符串和 導致該異常...

這裏是一個example,這裏是發送驗證消息another System.Net.Mail。

+0

我不知道您可以這樣解決它!謝謝:) – AlexCuse 2009-01-14 19:07:30

+0

DefaultNetworkCredentials爲用戶名等返回空字符串,並導致此異常:郵箱不可用。服務器響應是:5.7.1客戶端沒有權限發送此發件人 – jmcd 2009-01-14 19:34:58

0

您是否已將Web服務器上的交換服務器設置爲allow relays?切換到Exchange 2007時遇到同樣的問題。

相關問題