2013-06-05 101 views
-1

我有以下vb.net代碼的網頁內聯網:無法發送電子郵件給外部公司

Sub SendEmail() 
    MMsg = New MailMessage 

    MMsg.BodyFormat = MailFormat.Html 
    MMsg.From = "[email protected]_company_name.com" 

    MMsg.To = "[email protected]_company_name.com" 
    MMsg.Subject = "subject goes here" 
    MMsg.Body = "body goes here" 
    SmtpMail.SmtpServer = "smpt server goes here" 
    SmtpMail.Send(MMsg) 
End Sub 

這隻要正常工作爲MMsg.To包含公司內部的電子郵件地址唯一,即MMsg.To = "[email protected]_company_name.com;[email protected]_company_name.com" 。當我嘗試添加一個外部公司電子郵件到MMsg.To,即MMsg.To = "[email protected]_company_name.com;[email protected]_company_name.com",當我提交I​​ntranet上的網頁形式,我得到了以下錯誤消息:

服務器拒絕一個或多個收件人地址。服務器 響應爲:550 5.7.1無法爲 [email protected]_company.com

接力但是,內部電子郵件被成功接收和一切形式的處理。只是外部電子郵件沒有被外部公司收到,並且當他們按下提交按鈕時,出現在用戶屏幕上的錯誤。

我已經搜索了這個,並且一些解決方案建議我將localhost ip地址和intranet服務器ip地址添加到intranet上的iis中。我已經這樣做了,而且沒有任何區別。不知道我是否應該重新啓動iis之後,因爲我必須在更改apache在Linux服務器上時重新啓動apache?

還是因爲我們有一個真正的smtp服務器是從實際的內部網服務器分開,我試圖將IP地址添加到iis中的一些虛擬smtp服務器在Intranet服務器中?

或者是完全不同的東西?

+2

我認爲這是由於你使用的可能是配置爲允許內部交通...你應該與人民管理這些規則檢查SMTP服務器上有一些限制。 .. –

回答

1

錯誤號很明顯是一個SMTP服務器錯誤號 - 對於.NET沒有幫助。更通過錯誤的描述,可以發現here (PDF link)

基本上它歸結爲:

  • 如果你的SMTP服務器是基於白名單,你的外部地址/域名需要被列入白名單。像上面說的Bartdude一樣,請諮詢管理服務器規則的人員。
  • 也許你需要身份驗證才能使用該SMTP服務器。
  • 目標地址/域名在某種黑名單中。

另外,爲什麼你不嘗試使用其他SMTP服務器(如Gmail的,smtp.gmail.com)來檢查您是否可以發送電子郵件到外部地址?

0

最有可能的問題是您需要在發送電子郵件之前進行身份驗證。在</configuration> tag之前把這個在你的web.config:

<system.net> 
    <mailSettings> 
    <smtp from="[email protected]"> 
     <network host="mail.yourdomain.com" userName="[email protected]" password="mypassword" port="25" /> 
    </smtp> 
    </mailSettings> 
</system.net> 

當然用從你的郵件服務器的值引號的值。您也可以刪除代碼中設置SmtpServer的行。

HTH, 布蘭登