2013-02-26 37 views
0

當我的代碼從我的Windows 2003服務器執行時收到此錯誤,但是從我的Windows 7開發機器,郵件過程每次都完美地運行。項目配置爲2.0框架。服務器上是否存在缺少的組件?System.FormatException:指定的電子郵件地址目前不受支持

錯誤詳細信息。

[FormatException: The specified e-mail address is currently not supported.] 
    System.Net.Mime.MailBnfHelper.ReadMailAddress(String data, Int32& offset, String& displayName) +1138987 
    System.Net.Mail.MailAddress.ParseValue(String address) +240 
    System.Net.Mail.MailAddress..ctor(String address, String displayName, Encoding displayNameEncoding) +85 
    System.Net.Mail.MailAddress..ctor(String address) +8 
    BizHelp.WebForm1.btnSendEmail_Click(Object sender, EventArgs e) +117 
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111 
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110 
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565 

Web.Config中的細節(這是GoDaddy的非標準格式,但我必須在本地網絡上運行我的代碼,所以我不能用自己的中繼服務器 - 這一點也適用於我的Windows 7盒)

<mailSettings> 
     <smtp> 
     <network host="smtpout.secureserver.net" defaultCredentials="false" 
       userName="[email protected]" password="xxxxx" enableSsl="false" port="80"/> 
     </smtp> 
</mailSettings> 

VB代碼:

Imports System.Net.Mail 

Dim mm As New MailMessage(lblEmail.Text, "[email protected]") 
mm.Subject = "Welcome to xxxx" 
mm.IsBodyHtml = True 

mm.Body = lblMail.Text.ToString 
Dim smtp As New SmtpClient 
smtp.Send(mm) 

注:lblEmail.text是包含標準的電子郵件地址字段;該字段是從數據庫加載的。

任何想法或建議?謝謝!!

+0

它看起來好像代碼崩潰在一個特定的地址。它是否在每個地址或只有一個地址上失敗? – 2013-02-26 16:50:48

+0

我試過改變發件人地址 - 劇照失敗。然後我試着改變了To地址 - 劇照失敗。 – Mike 2013-02-26 19:40:49

+0

注意:smtp.Send(mm)代碼位於TryCatch循環內部,但是當頁面失敗時,它會失敗而不執行Catch部分。 – Mike 2013-02-26 19:42:04

回答

0

最有可能發生的事情是您的ToAddress的一個或多個值不是有效的電子郵件地址。我在想這是ToAddress,因爲你的FromAddress是硬編碼的,看起來有效。

在嘗試創建ToAddress之前,請嘗試放置Debug.WriteLine("\"" + lblEmail.Text + "\"")聲明。 (如果值爲空,引號就會出現。)崩潰後,檢查「輸出」窗口的「調試」窗格。那裏有什麼奇怪的東西嗎?任何看起來不是有效地址的東西?

+0

錯誤與ToAddress有關。我將我的項目移到了運行VS2008的XP框中 - 它遇到了同樣的錯誤。自從我調試以來,它顯示了特定的代碼行 - ToAddress。現在我可以做一些故障排除。我會發布我發現的內容。謝謝 – Mike 2013-02-27 15:56:27

+0

我發現了這個問題。當我從數據庫中提取ToAddress時,爲了提高表單的可讀性,我在實際地址之前插入了「Email:」。然後我試圖發送給那個字符串 - 錯了。所以我添加了代碼去除「電子郵件:」現在生活是美好的。謝謝! – Mike 2013-03-02 19:27:51