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交流群 (群号:483923997) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access两种方式实现即时更...(03.01)
- Access隐藏与显示lacc...(01.12)
- 【Access高效办公】将每个...(12.23)
- Access21点游戏源代码(12.13)
- 【Access窗体导出Exce...(11.15)
- 【Access开发】Acces...(11.14)
- 通过Access宏录入数据到选...(11.10)
- 用DLOOKUP函数将需求表中...(10.31)
- Access日期区间段查询数据...(10.25)
学习心得
最新文章
- Access快速开发平台--在WI...(03.08)
- 使用SQL语句删除xscj表中学号...(03.08)
- Access快速开发平台进销存教程...(03.07)
- Access快速开发平台--frm...(03.06)
- 【Access删除查询】删除数字最...(03.06)
- Access快速开发平台进销存教程...(03.05)
- Access快速开发平台进销存教程...(03.04)
- Access快速开发平台--IsL...(03.02)
- Access两种方式实现即时更新月...(03.01)
- Access开发的资金管理系统;基...(02.29)