第一个问题:
新建工程,加入以下两个控件:TextEmail(TextBox),CmdCheck(CommandButton)
Private Sub CmdCheck_Click()
    
    Dim EStr As String
    Dim ELen As Integer
    Dim I, FlagCount, TmpI, TmpJ As Integer
    TmpI = 0
    Const EFlag = "@"
    Const EPFlag = "."
    EStr = Trim(TextEmail.Text)
    ELen = Len(EStr)
    If Len(EStr) = 0 Then
        MsgBox "请输入您的Email!", vbCritical, "SD"
        TextEmail.SetFocus
    Else
        For I = 1 To ELen
            If Mid(EStr, I, 1) = EFlag Then
                FlagCount = FlagCount + 1
                If FlagCount = 1 Then TmpI = I
            End If
            If Mid(EStr, I, 1) = EPFlag Then TmpJ = I
        Next
        
        If Mid(EStr, 1, 1) = EFlag Or Mid(EStr, 1, 1) = EPFlag Then
            MsgBox "您输入的Email格式错误,请重新输入!", vbCritical, "SD"
            TextEmail.SetFocus
        ElseIf Mid(EStr, ELen, 1) = EFlag Or Mid(EStr, ELen, 1) = EPFlag Then
            MsgBox "您输入的Email格式错误,请重新输入!", vbCritical, "SD"
            TextEmail.SetFocus
        ElseIf FlagCount = 0 Then
            MsgBox "您输入的Email格式错误,请重新输入!", vbCritical, "SD"
            TextEmail.SetFocus
        ElseIf FlagCount > 1 Then
            MsgBox "您输入的Email格式错误,请重新输入!", vbCritical, "SD"
            TextEmail.SetFocus
        ElseIf Mid(EStr, TmpI - 1, 1) = EPFlag Or Mid(EStr, TmpI + 1, 1) = EPFlag Then
            MsgBox "您输入的Email格式错误,请重新输入!", vbCritical, "SD"
            TextEmail.SetFocus
        ElseIf Len(Mid(EStr, TmpJ, ELen - TmpJ)) = 1 Or Len(Mid(EStr, TmpJ, ELen - TmpJ)) > 3 Then
            MsgBox "您输入的Email格式错误,请重新输入!", vbCritical, "SD"
            TextEmail.SetFocus
        End If
    End If
    
End Sub第二个问题:
至于用VB群发邮件,可以通过随机产生邮件帐号,然后再用高效循环算法将产生的帐号发送就OK了!

解决方案 »

  1.   

    第一个问题  很好解决呀,是不是一个合法的地址要检查是否有"@"等等,@前面有没有用户名,后面有没有后缀等,一个合法的地址多得很,但是不是一个有效的EMAIL就难了哟,你可以这样做,先给对方发一封信,如果他收到了就证明是有效的,如果他没收到系统会自动返回,说明失败了,这就证明了是不是有效的地址了撒.
      

  2.   

    刚楼上的只是检查了是不是一个合法的EMAIL.并不能保证是不是有效,所谓有效就是指这个邮箱存在,有人在用他,比如:[email protected]这个用你的程序检查肯定是正确的,但他不是一个有效的EMAIL,而是一个合法的!!