2013-02-26 7 views
0

Эта ошибка возникает, когда мой код выполняется с моего сервера Windows 2003, однако с моей машины Windows 7 dev почтовый процесс работает безупречно каждый раз. Проект настроен для 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

Похоже, что код падает на один конкретный адрес. Не работает ли он по каждому адресу или только одному? –

+0

Я попытался изменить адрес From - кадры не срабатывают. Затем я попробовал изменить адрес «To» - сбрасывает кадры. – Mike

+0

Примечание: код smtp.Send (mm) находится внутри цикла TryCatch, но когда страница выходит из строя, он выходит из строя, не выполняя часть Catch. – Mike

ответ

0

Скорее всего, что одно или несколько значений для вашего ToAddress - это просто недействительный адрес электронной почты. Я думаю, что это ToAddress, потому что ваш FromAddress жестко закодирован и выглядит действительным.

Попробуйте ввести инструкцию Debug.WriteLine("\"" + lblEmail.Text + "\"") перед попыткой создать ToAddress. (Кавычки там, если значение пусто.) После сбоя осмотрите окно «Вывод» в панели «Отладка». Там что-то странное? Все, что не похоже на действительный адрес?

+0

Ошибка с ToAddress. Я перенес свой проект на XP-сервер под управлением VS2008 - он столкнулся с той же ошибкой. И поскольку я отлаживал, он показывает конкретную строку кода - ToAddress. Теперь я могу решить некоторые проблемы. Я опубликую то, что открываю. Спасибо – Mike

+0

Я нашел проблему. Когда я вытащил ToAddress из базы данных, чтобы улучшить читаемость в форме, я вставил «Email:» до фактического адреса. Затем я попытался отправить эту строку - неправильно. Поэтому я добавил код, чтобы вычеркнуть «Email:», и теперь жизнь прекрасна. Благодаря! – Mike