Site Web ASP.net 3.5 utilisant ASP: Le contrôle de l'assistant et SMTPClient n'envoient pas de courrier électronique

StackOverflow https://stackoverflow.com/questions/1418820

Question

J'ai un contrôle asp: Wizard sur un site exécutant Framework 3.5. J'ai acquis les paramètres de l'hôte Web et les ai saisis dans l'utilitaire de configuration Web. Voici le code derrière le fichier:

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

Classe de fin

Le code est conforme sans erreur. Une fois chargée sur le compte d'hébergement partagé, la page se charge et le code permet à l'utilisateur de saisir des informations dans l'assistant. Cependant, le bouton Terminer ne déclenche pas l'étape finale. Voici le code de la dernière étape de l'assistant:

<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>

Je ne peux pas déterminer ce qui explique ce problème. Quelqu'un peut-il m'indiquer les causes possibles?

Merci, Sid

Était-ce utile?

La solution

Avez-vous défini des points d'arrêt dans le code pour voir si le code d'envoi de courrier est effectivement atteint? Par exemple, je vous suggérerais de définir des points d'arrêt au moins comme suit:

Pour vérifier que l'événement FinishButtonClick se déclenche.

Dim mySMTPClient As New SmtpClient()

Pour vérifier que le code Sendmail a été frappé.

mySMTPClient.Send(myMail)

Pour voir si une exception se produit.

Dim ex2 As Exception = ex

De plus, il y a au moins deux autres choses à surveiller.

  1. Le serveur SMTP n'est peut-être pas configuré ou n'est pas configuré correctement.

  2. Même si le serveur SMTP est correctement configuré, vous voulez vous assurer que votre pare-feu (ou vos fournisseurs de services Internet) ne bloque pas l'envoi de courrier SMTP.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top