موقع ASP.net 3.5 باستخدام ASP: Wizard Control وSMTPClient لا يرسل بريدًا إلكترونيًا

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

سؤال

لدي عنصر تحكم asp: Wizard على موقع يقوم بتشغيل Framework 3.5.لقد حصلت على الإعدادات من مضيف الويب وأدخلتها في Web Configuration Utility.إليك الكود الموجود خلف الملف:

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>

لا أستطيع تحديد ما الذي يسبب هذه المشكلة.هل يمكن لأحد أن يوجهني إلى الأسباب المحتملة؟

شكرا يا سيد

هل كانت مفيدة؟

المحلول

هل قمت بتعيين نقاط توقف داخل الكود لمعرفة ما إذا كان قد تم الوصول بالفعل إلى كود إرسال البريد؟على سبيل المثال، أقترح عليك تعيين نقاط التوقف على الأقل على النحو التالي:

للتحقق من إطلاق الحدث FinishButtonClick.

Dim mySMTPClient As New SmtpClient()

للتحقق من ضرب رمز Sendmail.

mySMTPClient.Send(myMail)

لمعرفة ما إذا كان هناك أي استثناء يحدث.

Dim ex2 As Exception = ex

بالإضافة إلى ذلك، هناك على الأقل بعض الأشياء الأخرى التي يجب البحث عنها.

  1. ربما لم يتم تكوين خادم SMTP أو تكوينه بشكل صحيح.

  2. حتى إذا تم تكوين خادم SMTP بشكل صحيح، فأنت تريد التأكد من أن جدار الحماية الخاص بك (أو مزودي خدمات الإنترنت) لا يمنع إرسال بريد SMTP.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top