为什么我想循环自动发送邮件的时候,就只有第一封能自动发送,其它后面的邮件都只能创建,不能自动发送Private Sub send_mail_Click()    '发送邮件通知    Do While Not TDBG_Dept.EOF      If A>B Then 
        Dim olapp     As Object
        Dim oitem     As Object        Set olapp = CreateObject("outlook.Application")
        Set oitem = olapp.CreateItem(0)
           With oitem
               .Display
               .Subject = "TEST"                '主题
               .To = "[email protected]"               '收件人
               .Body = "test"                   '邮件内容
                DoEvents
                SendKeys "%s", Wait:=True       '模拟键盘确认功能
           End With
           
       Set olapp = Nothing
       Set oitem = Nothing
       TDBG_Dept.MoveNext
     Else
       Exit Sub
     End If   LoopEnd Sub

解决方案 »

  1.   

    将olapp对象在窗体显示的属性设置为False
    直接用.Send() 方法试试
      

  2.   

    还是不行的话找一个CDONTS.dll组件来发
      

  3.   

    我最先就是直接用.Send()方法的.但是每次发送都会弹出"有一个程序正试图以您的名义自动发送电子邮件.是否允许该操作".这样每发一封邮件都有这样的提示很烦,所以后来我才改成现在的代码.但现在的代码从第2封开始就不自动发送了.