2013-02-26 101 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