ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: solonely

[求助] OUTLOOK有条件的密送功能

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-9-10 17:47 | 显示全部楼层
本帖最后由 solonely 于 2015-9-10 18:00 编辑
闻启学 发表于 2015-9-9 22:53
给个附件我 看看
就是下面这段代码,第27行就停止了

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim objRecip As Recipient
    Dim strMsg As String
    Dim res As Integer
    Dim strBcc As String
    On Error Resume Next
    Dim myItem As outlook.MailItem

    Dim arrto
    Dim arrcc

    Dim myTo As String

    Dim mycc As String

    Set myItem = Item

                '这里填写你要密送的邮箱


    Debug.Print myItem.CC; myItem.To

    arrto = Split(myItem.To, ";")

    arrcc = Split(myItem.CC, ";")

Stop
    For i = 0 To UBound(arrto)

        If Not arrto(i) Like "*@163.com" Then


            strBcc = strBcc & arrto(i) & ";"

            arrto(i) = ""
        End If

    Next
   
    Stop
    myTo = Join(arrto, ";")

    For i = 0 To UBound(arrcc)

        If Not arrcc(i) Like "*@163.com" Then

            strBcc = strBcc & arrcc(i) & ";"
            arrcc(i) = ""

        End If

    Next
Stop
    mycc = Join(arrcc, ";")
   

    Set objRecip = myItem.Recipients.Add(strBcc)
   
    myItem.To = Trim(myTo)
   
    myItem.CC = Trim(mycc)
   
    Stop
    objRecip.Type = olBCC
    If Not objRecip.Resolve Then
        strMsg = "不能解析密件抄送人邮件地址, " & _
                 "请确认是否仍然发送邮件?"
        res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
                     "不能解析密件抄送人邮件地址")
        If res = vbNo Then
            Cancel = True
        End If
    End If

    Set objRecip = Nothing


End Sub

TA的精华主题

TA的得分主题

发表于 2015-9-10 23:56 | 显示全部楼层
哦哦哦  sorry 我忘记删除测试代码

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim objRecip As Recipient
    Dim strMsg As String
    Dim res As Integer
    Dim strBcc As String
    On Error Resume Next
    Dim myItem As outlook.MailItem

    Dim arrto
    Dim arrcc

    Dim myTo As String

    Dim mycc As String

    Set myItem = Item

                '这里填写你要密送的邮箱


    Debug.Print myItem.CC; myItem.To

    arrto = Split(myItem.To, ";")

    arrcc = Split(myItem.CC, ";")

Stop
    For i = 0 To UBound(arrto)

        If Not arrto(i) Like "*@163.com" Then


            strBcc = strBcc & arrto(i) & ";"

            arrto(i) = ""
        End If

    Next

    Stop
    myTo = Join(arrto, ";")

    For i = 0 To UBound(arrcc)

        If Not arrcc(i) Like "*@163.com" Then

            strBcc = strBcc & arrcc(i) & ";"
            arrcc(i) = ""

        End If

    Next
Stop
    mycc = Join(arrcc, ";")


    Set objRecip = myItem.Recipients.Add(strBcc)

    myItem.To = Trim(myTo)

    myItem.CC = Trim(mycc)
    objRecip.Type = olBCC
    If Not objRecip.Resolve Then
        strMsg = "不能解析密件抄送人邮件地址, " & _
                 "请确认是否仍然发送邮件?"
        res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
                     "不能解析密件抄送人邮件地址")
        If res = vbNo Then
            Cancel = True
        End If
    End If

    Set objRecip = Nothing


End Sub


TA的精华主题

TA的得分主题

 楼主| 发表于 2015-9-15 15:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
闻启学 发表于 2015-9-10 23:56
哦哦哦  sorry 我忘记删除测试代码

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As ...

老大,还是没办法正常发送邮件,

TA的精华主题

TA的得分主题

发表于 2015-9-15 21:52 | 显示全部楼层
solonely 发表于 2015-9-15 15:53
老大,还是没办法正常发送邮件,

修改后的 请测试
  1. Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
  2.     Dim objRecip As Recipient
  3.     Dim strMsg As String
  4.     Dim res As Integer
  5.     Dim strBcc As String
  6.     On Error Resume Next
  7.     Dim myItem As outlook.MailItem

  8.     Dim arrto
  9.     Dim arrcc

  10.     Dim myTo As String

  11.     Dim mycc As String

  12.     Set myItem = Item

  13.                 '这里填写你要密送的邮箱


  14.     Debug.Print myItem.CC; myItem.To

  15.     arrto = Split(myItem.To, ";")

  16.     arrcc = Split(myItem.CC, ";")


  17.     For i = 0 To UBound(arrto)

  18.         If Not arrto(i) Like "*@163.com" Then


  19.             strBcc = strBcc & arrto(i) & ";"

  20.             arrto(i) = ""
  21.         End If

  22.     Next

  23.    
  24.     myTo = Join(arrto, ";")

  25.     For i = 0 To UBound(arrcc)

  26.         If Not arrcc(i) Like "*@163.com" Then

  27.             strBcc = strBcc & arrcc(i) & ";"
  28.             arrcc(i) = ""

  29.         End If

  30.     Next

  31.     mycc = Join(arrcc, ";")


  32.     Set objRecip = myItem.Recipients.Add(strBcc)

  33.     myItem.To = Trim(myTo)

  34.     myItem.CC = Trim(mycc)
  35.     objRecip.Type = olBCC
  36.     If Not objRecip.Resolve Then
  37.         strMsg = "不能解析密件抄送人邮件地址, " & _
  38.                  "请确认是否仍然发送邮件?"
  39.         res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
  40.                      "不能解析密件抄送人邮件地址")
  41.         If res = vbNo Then
  42.             Cancel = True
  43.         End If
  44.     End If

  45.     Set objRecip = Nothing


  46. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-11 07:57 , Processed in 0.026148 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表