ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4159|回复: 2

不调用outlook发邮件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-7-27 15:47 | 显示全部楼层 |阅读模式

我想做一个群发附件的程序,但是不想通过调用outlook来做。

因为outlook这东西启动的太慢,不是很方便。

请问有没有一种方法直接发附件到foxmail或者dreammail之类支持MAPI的邮件程序里面??

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-7-27 16:02 | 显示全部楼层
Function SendMail_CDO()
    ' Reference to Microsoft ActiveX Data Objects 2.5 Library
    ' Reference to Microsoft CDO for Windows 2000 Library
    ' 引用 Microsoft ActiveX Data Objects 2.5 Library
    ' 引用 Microsoft CDO for Windows 2000 Library

    Dim iConf As New CDO.Configuration
    Dim Flds  As ADODB.Fields
    Set Flds = iConf.Fields

    ' Set the configuration for Network Send
    ' 设定配置信息

    Flds(CDO.cdoLanguageCode) = "gb2312"
    Flds(CDO.cdoTimeZoneIDURN) = CDO.cdoBeijing
    Flds(CDO.cdoSendUsingMethod) = CDO.cdoSendUsingPort
    Flds(cdoSMTPServer) = "test.com.cn"
    Flds(cdoSMTPServerPort) = 25
    Flds(cdoSMTPConnectionTimeout) = 30
    Flds(cdoSMTPAccountName) = "My Name"
    Flds(cdoSendUserReplyEmailAddress) = """User"" <example@example.com>"
    Flds(cdoSendEmailAddress) = """User"" <example@example.com>"
    Flds(cdoSMTPAuthenticate) = cdoBasic

    ' IMPORTANT: Storing user names and passwords inside source code
    ' can lead to security vulnerabilities in your software. Do not
    ' store user names and passwords in your production code.
    ' 注意,用户名和密码不要写在程序里,否则会对你的软件安全性构成威胁

    Flds(cdoSendUserName) = "name"
    Flds(cdoSendPassword) = "password"
    
    ' 以下为代理服务器设置,如果你要使用类似 IMessage.AddAttachment 和 IMessage.CreateMHTMLBody ,你可能需要设置以下内容
    'Flds(cdoURLProxyServer) = "proxyserver:80"
    'Flds(cdoURLProxyBypass) = "<local>"
    'Flds(cdoURLGetLatestVersion) = True
    'Flds(cdoHTTPCookies) = "cookies here"

    
    '设置邮件头
    With Flds
        .Item("urn:schemas:httpmail:to") = "example@access911.net"
        .Item("urn:schemas:httpmail:from") = "another@access911.net"
        'BCC 是密件抄送
        'CC 是抄送

        .Item("urn:schemas:httpmail:cc") = "exampleuser3@access911.net"
        .Item("urn:schemas:httpmail:sender") = "example@access911.net"
        '.Item("urn:schemas:mailheader:myhdr") = "multipart/alternative"
        '.Item("urn:schemas:mailheader:x-hdr") = "less value"

    End With
    Flds.Update

    Dim iMsg As New CDO.Message
    Set iMsg.Configuration = iConf

    With iMsg
        '以下属性根据字面理解都应该没问题的。
        .From = "access911@etang.com"
        .To = "example@example.com"
        '.Newsgroups = "area.example.newsgroup1"
        .Subject = "Test Title"
        .TextBody = "Please switch to HTML view ... " & _
            vbCrLf & "请切换到 HTML 视图。。。"
        .HTMLBody = "<html><body><table ><tr><td><font color=red>5545</font></td>" & _
            "<td><font size=5>44545</font></td></tr></table></body></html>"
      
        '添加附件,下面多种格式可以选择
        '.AddAttachment "http://server.access911.net/logo.gif"
        '.AddAttachment "file://c:/temp/test.doc"

        .AddAttachment "C:\temp\readme.html"
        .BodyPart.Fields("urn:schemas:mailheader:content-type") = _
            "multipart/alternative; charset=""gb2312"""
        ' content-type 可以选择 "text/plain" or "text/html" or "multipart/alternative"
        .BodyPart.Charset = "gb2312"
        .Send
    End With
    Set iMsg = Nothing
    Set Flds = Nothing
    Set iConf = Nothing
End Function

用 CDO 发送邮件

注意:CDO(Collaboration Data Objects) 分多个版本,比如 CDO 1.2 ; CDO for Windows 2000 ; CDO for SPS ; CDO for Exchange 2000 Server
在这里我们使用的应该是 Microsoft CDO for Windows 2000 Library

CDO 方法适用所有的 OFFICE 组件。
优点:WINDOWS 2000 以及以上内置该类库,无需额外安装
缺点:需要 ADO 2.5 及以上版本支持,只有在 WINDOWS 2000 及以上版本才无需安装

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-7-27 16:17 | 显示全部楼层
似乎还是不行,不知道有没有好方法在excel中模拟“在文件上点击右键,发送文件到foxmail或dreammail”这样的一个动作。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-27 00:18 , Processed in 0.037723 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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