我正在尝试使用cURL从VBA向Mandrill /api/1.0/messages/send.json发送电子邮件。 发送没有附件的简单电子邮件我没有任何问题。 当我尝试发送附件(base64文件内容)时,问题就开始了。
我将VBA生成的文件内容和编码字符串与PHP进行了比较,它们是不同的。 PHP一个正常工作。 这是我获取内容然后将其编码为base64的实现。
Function readFile(path as String) as String
Dim oFSO As Object
Dim oFS As Object, sText As String
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFS = oFSO.OpenTextFile(path)
Do Until oFS.AtEndOfStream
sText = oFS.ReadAll()
Loop
readFile = sText
Set oFSO = Nothing
Set oFS = Nothing
End Function
Function encodeBase64(text As String) As String
Dim arrData() As Byte
arrData = StrConv(text, vbFromUnicode)
Dim objXML As MSXML2.DOMDocument
Dim objNode As MSXML2.IXMLDOMElement
Set objXML = New MSXML2.DOMDocument
Set objNode = objXML.createElement("b64")
objNode.Datatype = "bin.base64"
objNode.nodeTypedValue = arrData
encodeBase64 = Replace(objNode.text, vbLf, "")
Set objNode = Nothing
Set objXML = Nothing
End Function
我正在尝试加载MS Word和PDF的内容。