Веб-сайт ASP.net 3.5 с использованием ASP: мастер управления и SMTPClient не отправляет электронную почту - PullRequest
0 голосов
/ 14 сентября 2009

У меня есть элемент управления asp: Wizard на сайте под управлением Framework 3.5. Я получил настройки с веб-хостинга и ввел их в утилиту веб-конфигурации. Вот код файла:

Protected Sub Wizard1_FinishButtonClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles Wizard1.FinishButtonClick
    Dim mySMTPClient As New SmtpClient()
    Dim sb As New StringBuilder
    Dim myMail As New MailMessage("webmaster@mydomain.com", "user@mydomain.com")
    Dim myFrom As New MailAddress("webmaster@mydomain.com")
    Dim myTo As New MailAddress("user@anotherdomain.com")
    myMail.BodyEncoding = System.Text.Encoding.UTF8
    myMail.IsBodyHtml = False
    myMail.To.Add(myTo)
    myMail.Subject = "Request for Information"
    sb.Append("Contact Name: ")
    sb.Append(txtcontactname.Text)
    sb.Append("<br/>Phone Number: ")
    sb.Append(txtcontactphone.Text)
    sb.Append("<br/>Employer Name: ")
    sb.Append(txtemployername.Text)
    sb.Append("<br/>City: ")
    sb.Append(txtcity.Text)
    sb.Append("<br/>State: ")
    sb.Append(cmbstate.Text)
    sb.Append("<br/>Zip: ")
    sb.Append(txtzip.Text)
    sb.Append("<br/>Other Location: ")
    sb.Append(txtotherloc.Text)
    sb.Append("<br/>Nature of Business: ")
    sb.Append(txtbusnat.Text)
    sb.Append("<br/>Eligible Employees: ")
    sb.Append(txteligemps.Text)
    sb.Append("<br/>Average Employee Turnover Per Year: ")
    sb.Append(txtempturnover.Text)
    sb.Append("<br/>Broker Name: ")
    sb.Append(txtbrokername.Text)
    sb.Append("<br/>Broker Email: ")
    sb.Append(txtbrokeremail.Text)
    sb.Append("<br/>Proposed Effective Date: ")
    sb.Append(txteffdate.SelectedDate)
    sb.Append("<br/>Limited Benefit Medical Plans: ")
    For Each item As ListItem In chkmedplans.Items
        If (item.Selected) Then
            sb.Append(item.Text)
            sb.Append(" ")
        End If
    Next
    sb.Append("<br/>Voluntary Products/Services: ")
    For Each item As ListItem In chkvolserv.Items
        If (item.Selected) Then
            sb.Append(item.Text)
            sb.Append(" ")
        End If
    Next
    sb.Append("<br/>Employer Paid Products/Services: ")
    For Each item As ListItem In chkempserv.Items
        If (item.Selected) Then
            sb.Append(item.Text)
            sb.Append(" ")
        End If
    Next
    sb.Append("<br/>Preferred Benefit Enrollment Program(s): ")
    For Each item As ListItem In chkenrolprog.Items
        If (item.Selected) Then
            sb.Append(item.Text)
            sb.Append(" ")
        End If
    Next
    sb.Append("<br/>Comments: ")
    sb.Append(txtcomments.Text)
    myMail.Body = sb.ToString()
    Try
        mySMTPClient.Send(myMail)
    Catch ex As Exception
        Dim ex2 As Exception = ex
        Dim errorMessage As String = String.Empty
        While Not (ex2 Is Nothing)
            errorMessage += ex2.ToString()
            ex2 = ex2.InnerException
        End While
        Response.Write(errorMessage)
    End Try
End Sub

Конечный класс

Код соответствует без ошибок. При загрузке в учетную запись общего хостинга страница загружается, и код позволяет пользователю вводить информацию в мастере. Однако кнопка Готово не запускает последний шаг. Вот код для последнего шага мастера:

<asp:WizardStep ID="WizardStep4" runat="server" StepType="Complete" Title="Complete">
        Thank you for your inquiry.  A member of our staff will contact you regarding your request.</asp:WizardStep>

Я не могу определить, что является причиной этой проблемы. Может ли кто-нибудь указать мне возможные причины?

Спасибо, Sid

1 Ответ

1 голос
/ 14 сентября 2009

Вы установили контрольные точки в коде, чтобы увидеть, действительно ли достигнут код для отправки почты? Например, я бы посоветовал вам установить точки останова, по крайней мере, в следующем:

Чтобы убедиться, что событие FinishButtonClick запускается.

Dim mySMTPClient As New SmtpClient()

Чтобы убедиться, что код Sendmail используется.

mySMTPClient.Send(myMail)

Чтобы узнать, не происходит ли какое-либо исключение.

Dim ex2 As Exception = ex

Кроме того, есть по крайней мере еще пара вещей, на которые стоит обратить внимание.

  1. Возможно, SMTP-сервер не настроен или настроен неправильно.

  2. Даже если SMTP-сервер настроен правильно, вы хотите убедиться, что ваш брандмауэр (или ваши интернет-провайдеры) не блокирует отправку SMTP-почты.

...