簡體   English   中英

SMTP 電子郵件一直有效,直到在發送郵件的過程中觸發 404 錯誤

[英]SMTP Email Works until triggering a 404 error in the middle of sending Mail

我有一個電子郵件收件人 imma 數據庫表,並使用 gridview 表中的“全選”按鈕作為觸發器來調用郵件功能。 我的迭代函數調用此處重復描述的“executeApprove”:

            For Each row In gridApproval.Rows
                        chkApprove = CType(gridApproval.Rows(i).FindControl("chkApprove"), CheckBox)
                        If chkApprove.Checked Then
                            executeApprove(Right(lblTglProses.Text, 8), Left(gridApproval.Rows(i).Cells.Item(2).Text, 3), Session("role"), "APPROVE", Session("userID"), False)
                        End If
                        i = i + 1
                    Next
                Catch ex As Exception
                    ScriptManager.RegisterStartupScript(Me.UpdatePanel1, Me.GetType, "Message", "alert('Error : ' + '" & Replace(Replace(ex.Message.ToString, "'", ""), vbNewLine, "") & "');", True)
                End Try
                gridApproval.DataBind()
            End If

在我的 executeApprove 上:

Protected Sub executeApprove(ByVal tanggal As String, ByVal branch As String, ByVal role As String, ByVal status As String, ByVal user As String, ByVal isDone As Boolean)
    Dim Title As String
    Dim Body As String
    Try
        conn = run.connect(conn, "open")
        cmd = New SqlCommand("usp_status_trial", conn)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.CommandTimeout = 0
        cmd.Parameters.Add("@date", SqlDbType.VarChar).Value = tanggal
        cmd.Parameters.Add("@branch", SqlDbType.VarChar).Value = branch
        cmd.Parameters.Add("@role", SqlDbType.VarChar).Value = role
        cmd.Parameters.Add("@status", SqlDbType.VarChar).Value = status
        cmd.Parameters.Add("@user", SqlDbType.VarChar).Value = user
        reader = cmd.ExecuteReader
        If reader.HasRows Then
            reader.Read()
            result = reader.Item(0).ToString
            ScriptManager.RegisterStartupScript(Me.UpdatePanel1, Me.GetType, "Message", "alert('" & result & "');", True)
            If result = "APPROVED" Then
                If Session("role") = "APP" Then
                    Title = "Title Email"
                    Body = "Body Email"
                    sendMultipleMail(Title, Body)
                End If
            ElseIf result = "UNAPPROVED" Then
                If Session("role") = "APP" Then
                    Title = "Title Email"
                    Body = "Body Email"
                    sendMultipleMail(Title, Body)
                End If
            End If

            If isDone Then
                Response.Redirect("~/dashboard.aspx?id=" + Request.QueryString("id"), True)
            End If

        End If
        conn = run.connect(conn, "close")
    Catch ex As Exception
        ScriptManager.RegisterStartupScript(Me.UpdatePanel1, Me.GetType, "Message", "alert('Error : ' + '" & Replace(Replace(ex.Message.ToString, "'", ""), vbNewLine, "") & "');", True)
    End Try
End Sub

和我的 sendMultipleMail :

Public Sub sendMultipleMail(ByVal subject As String, ByVal body As String)
    Dim dsMail As New DataSet
    Dim strQuery As New SqlCommand
    Dim SendFrom As MailAddress
    Dim SendTo As MailAddress
    Dim emailClient As SmtpClient
    Dim SMTP As String
    Dim mailFrom As String

    SMTP = getAppParam("SMTPserver")    'got the SMTP
    mailFrom = getMailSetting("mailFrom")
    strQuery.CommandText = "%'Query for select all the receiver'%"
    dsMail = RunQuery(strQuery)
    For Each rowMail In dsMail.Tables(0).Rows
        SendFrom = New MailAddress(mailFrom)
        SendTo = New MailAddress(rowMail("mail_address").ToString())

        Dim MyMessage As MailMessage = New MailMessage(SendFrom, SendTo)

        MyMessage.Subject = subject
        MyMessage.Body = body

        emailClient = New SmtpClient(SMTP)
        emailClient.Send(MyMessage)
    Next
End Sub

一切正常,直到發送大量電子郵件的幾分鍾(在重復調用 func 的中間),IIS 返回一個奇怪的 404 響應。

POST http://localhost/myApp/approval?type=all&id=userid 500(內部服務器錯誤)——MicrosoftAjax.js:6

未捕獲的類型錯誤:無法在 Sys.WebForms.PageRequestManager._onFormSubmitCompleted (MicrosoftAjaxWebForms.js:6:25554) 的 Sys.WebForms.PageRequestManager._createPageRequestManagerServerError (MicrosoftAjaxWebForms.js:6:11462) 處讀取未定義的屬性(讀取“PRM_ServerError”) . (MicrosoftAjax.js:6:307) 在 MicrosoftAjax.js:6:51370 在 Sys.Net.WebRequest.completed (MicrosoftAjax.js:6:89678) 在 XMLHttpRequest._onReadyStateChange (MicrosoftAjax.js:6:84277)

我犯了一些錯誤嗎?

謝謝你的回答。 出現錯誤 404 只是因為 SMTP 需要很長時間才能將整個電子郵件發送到接收者。 所以我一直在用

<security>
    <requestFiltering>
        <requestLimits maxAllowedContentLength="3000000000" />
    </requestFiltering>
</security>

在 .config 文件中增加超時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM