dreamMail命令行发送邮件
时 间:2018-09-22 14:27:08
作 者:狼 ID:19736 城市:佛山
摘 要:办公协同软件是ACCESS数据库及VBA开发,直接是使用outlook发送邮件,经常出现一些问题,所以寻求使用其他的邮件客户端进行了尝试,搜索发现使用mailto命令行的朋友几乎都没能解决发送附件的问题,在“畅邮使用交流群”群主@木头的帮助下得到了完美的解决。
正 文:
使用畅邮CyMail(DreamMail)命令行代码发送邮件的应用案例
解决问题搜索关键词:mailto附件问题、命令行、VBA、CMD、MAPI、OUTLOOK,FOXMAIL,DREAMMAIL,CYMAIL
笔者办公协同软件是ACCESS数据库及VBA开发,直接是使用outlook发送邮件,经常出现一些问题,所以寻求使用其他的邮件客户端进行了尝试,搜索发现使用mailto命令行的朋友几乎都没能解决发送附件的问题,在“畅邮使用交流群”群主@木头的帮助下得到了完美的解决。
一、官网下载安装畅邮最新客户端:
二、记事本建立一个文件
文件名固定:F1CBD3E77E274E85AF33018370EBDA65.MAPI
内容为:(前面没有空格)
Subject: [邮件主题]
From:[Email]
To: [收信人]
CC: [抄送]
BCC: [暗送]
Body: [邮件内容,TXT格式]
Html:[邮件内容, HTML格式]
SaveAndClose:[是否直接保存并关闭, 1 或者 0]
SaveAndSend:[是否发送, 1 或者 0]
Attach:[附件名]
例子:
Subject:测试
To: 697336xxxxx@qq.com;abcdxxx@qq.com
CC: Test1xx@qq.com;zengxiquanxxx@gmail.com
BCC: woodstockxxx@gmail.com
Body: 你好,
这是邮件内容第二行
这是邮件内容第三行
SaveAndClose:1
SaveAndSend:1
Attach:c:\1.txt
c:\2.txt
c:\3.zip
特别注意保存格式:ANSI
三、调用方式
3.1 命令行调用
d:\cyemail\dreammail.exe "c:\.....\F1CBD3E77E274E85AF33018370EBDA65.MAPI"
3.2 直接打开MAPI文件方式调用
给MAPI文件设置默认打开方式为cyMail(dreamMail),即鼠标右键打开方式设置一下默认DreamMail,以后直接点击文件即可自动发送。
四、VB/VBA完整测试代码
Private Function GetCyPath() As String '获得畅邮的安装路径 Dim WSH As Object, cyPath As String Set WSH = CreateObject("Wscript.Shell") cyPath = WSH.RegRead("HKEY_CLASSES_ROOT\Applications\DreamMail.exe\shell\open\command\") GetCyPath = Replace(Left(cyPath, Len(cyPath) - 5), """", "") GetCyPath = Trim(Replace(GetCyPath, "DreamMail.exe", "")) Debug.Print GetCyPath Set WSH = Nothing End Function
'发送邮件的主程序 Public Sub SendToSubjBodyCy(strTo As String, _ '收件人地址 bolHTML As Boolean, _ '忽略本参数 strSubj As String, _ '主题 strBody As String, _ '邮件内容 AttachmentFileName As String, _ '附件 Optional AutoSend As Boolean = True) '自动发送与否,暂未使用 Dim cyPath As String cyPath = GetCyPath '取得安装路径 '组建文件内容 Dim cc1 As String Dim bcc1 As String Dim sv1 As String Dim sv2 As String Dim mailS As String Dim File1 As String Dim s As String sbj1 = "Subject:" & strSubj Addr1 = "To:" & strTo cc1 = "CC:" bcc1 = "bcc:" body1 = "Body:" & strBody File1 = AttachmentFileName sv1 = "SaveAndClose:0" sv2 = "SaveAndSend:1" mailS = sbj1 & vbCrLf & Addr1 & vbCrLf & cc1 & vbCrLf & bcc1 & vbCrLf & body1 & vbCrLf & sv1 & vbCrLf & sv2 & vbCrLf & "Attach:" & AttachmentFileName Call SaveFile(cyPath & "F1CBD3E77E274E85AF33018370EBDA65.MAPI", mailS, "GB2312") s = cyPath & "DreamMail.exe " & cyPath & "F1CBD3E77E274E85AF33018370EBDA65.MAPI" Shell s End Sub
Private Sub SaveFile(FilePath As String, strText As String, Optional Charset As String = "GB2312") Dim Obj As Object Set Obj = CreateObject("ADODB.Stream") With Obj .Mode = 3 .Charset = Charset .Open .WriteText strText, 0 .SaveToFile FilePath, 2 End With Set Obj = Nothing End Sub
Private Sub Command7_Click() SendToSubjBodyGy "ZQZHUOXXXX@WL3389.CN", False, "TEST" & Now, "test1kkkkk", "C:\1.TxT", True End Sub
以上代码在ACCESS VBA环境下测试通过。QQ:6093703 欢迎交流。
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 根据变化的日期来自动编号的示例...(06.20)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)

学习心得
最新文章
- 根据变化的日期来自动编号的示例;根...(06.20)
- Access快速开发平台--Acc...(06.16)
- 【Access高效办公】按日期区间...(06.12)
- Access快速开发平台--生成复...(06.07)
- 仓库管理实战课程(25)-导航菜单...(06.06)
- 仓库管理实战课程(24)-库存月结...(06.05)
- 分享一个简单的X氏家谱小示例(06.04)
- 仓库管理实战课程(23)-先入先出(06.02)
- 仓库管理实战课程(22)-代理商库...(05.30)
- 仓库管理实战课程(21)-安全库存...(05.28)