LessonXiao 2021-04-28 13:23 采纳率: 50%
浏览 10

求救,VB开发,发送邮件

 发送的时候,收件人为3人,其中一人邮箱满了,其中一人收件箱地址失效,导致第三人 收不到邮件 ,下面是代码

 

 Private Sub sendMailCS()
        
        _javascript.exec("Main_Delete_alert", "alert('进入发起!')")

        'TCE侧新服务器
        Dim strsmtp As String = "XXX.XXX.XXX.XX"
        Dim stremailuser As String = "XXXXXX@XXXXXXX-XXXXX.cn"
        Dim stremailpassword As String = ""

        Dim client As New SmtpClient(strsmtp.ToString)
        client.UseDefaultCredentials = False
        client.Credentials = New System.Net.NetworkCredential(stremailuser.ToString, stremailpassword.ToString)
        client.DeliveryMethod = SmtpDeliveryMethod.Network
        Dim message As New MailMessage()
        message.IsBodyHtml = True

        message.From = New MailAddress(stremailuser.ToString)
        message.Subject = String.Format(Settings.Default.email_subject & "(" & CustomerName_TextBox.Text.Trim & ")")

        Try
            message.To.Add(New MailAddress(getEmailAddressManager())) 
            message.CC.Add(New MailAddress(getEmailAddressManagerCC())) 
            message.Body = String.Format(Settings.Default.email_body, "部品缺漏信息 中 发行番号为 " & fxbh & "(序号为" & seqid & ",合同号为" & ContractNum & ", 号机号为" & MachineNum & ")的记录已转创建者结案!", "")
            
            
        Catch ex As Exception
            Return
        End Try

        client.Send(message) 
        
    End Sub

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-14 19:25
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题解答: 在发送邮件的时候,收件人有3人,其中一人邮箱满了,一人收件箱地址失效,导致第三人无法收到邮件。造成这种情况的原因可能是收件人的邮箱容量已经达到上限或者收件人的邮箱地址已经失效。为了解决这个问题,可以在添加收件人之前先进行一些验证,确保收件人的邮箱地址是有效的。 以下是一个示例代码,可以在添加收件人之前使用Try-Catch块来处理可能的异常情况:
    Private Sub sendMailCS()
        
        Dim strsmtp As String = "XXX.XXX.XXX.XX"
        Dim stremailuser As String = "XXXXXX@XXXXXXX-XXXXX.cn"
        Dim stremailpassword As String = ""
        
        Dim client As New SmtpClient(strsmtp)
        client.UseDefaultCredentials = False
        client.Credentials = New System.Net.NetworkCredential(stremailuser, stremailpassword)
        client.DeliveryMethod = SmtpDeliveryMethod.Network
        
        Dim message As New MailMessage()
        message.IsBodyHtml = True
        message.From = New MailAddress(stremailuser)
        message.Subject = String.Format(Settings.Default.email_subject & " (" & CustomerName_TextBox.Text.Trim & ")")
        
        Try
            Dim recipient1 As String = getEmailAddressManager()
            If Not String.IsNullOrEmpty(recipient1) Then
                message.To.Add(New MailAddress(recipient1))
            End If
            
            Dim recipient2 As String = getEmailAddressManagerCC()
            If Not String.IsNullOrEmpty(recipient2) Then
                message.CC.Add(New MailAddress(recipient2))
            End If
            
            message.Body = String.Format(Settings.Default.email_body, "部品缺漏信息 中 发行番号为 " & fxbh & "(序号为" & seqid & ",合同号为" & ContractNum & ",号机号为" & MachineNum & ")的记录已转创建者结案!", "")
            
        Catch ex As Exception
            Return
        End Try
        
        Try
            client.Send(message)
            
        Catch ex As SmtpFailedRecipientException
            '处理邮件发送失败的情况
            Console.WriteLine("邮件发送失败: " & ex.Message)
            
        Catch ex As Exception
            '处理其他异常情况
            Console.WriteLine("发生了一个错误: " & ex.Message)
        End Try
        
    End Sub
    

    上述代码中,在添加收件人的过程中使用Try-Catch块来捕获可能的异常情况,例如收件人地址无效或者邮箱已满,从而避免出现发送邮件失败的情况。同时,在邮件发送的过程中也对可能发生的异常情况进行了处理。希望这个解答对您有帮助。

    评论

报告相同问题?