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)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)