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制作的RGB转CM...(09.22)
- Access制作的RGB调色板...(09.15)
- Access制作的快速车牌输入...(09.13)
- 【Access高效办公】统计当...(06.30)
- 【Access高效办公】用复选...(06.24)
- 根据变化的日期来自动编号的示例...(06.20)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)
学习心得
最新文章
- Access做的一个《中华经典论语...(10.25)
- Access快速开发平台--加载事...(10.20)
- 【Access有效性规则示例】两种...(10.10)
- EXCEL表格扫描枪数据录入智能处...(10.09)
- Access快速开发平台--多行文...(09.28)
- 关于从Excel导入长文本数据到A...(09.24)
- Access制作的RGB转CMYK...(09.22)
- 关于重装系统后Access开发的软...(09.17)
- Access制作的RGB调色板示例(09.15)
- Access制作的快速车牌输入改进...(09.13)


.gif)
