Email 在MS Access/Outlook中兑换(尝试在电子邮件中包含单独的邮件文件)
此代码位于MS Access(2010)VBA中,使用Microsoft Outlook 2010的赎回库 我以前有过这个过程,但最近我们进行了Citrix升级,我想我的Outlook中重置了一些东西,现在这个过程不再工作了 我有一个文件夹的.msg文件基本上是预先制作的电子邮件模板与所有正确的格式,图像,文本等 这就是我以前所做的:Email 在MS Access/Outlook中兑换(尝试在电子邮件中包含单独的邮件文件),email,ms-access,vba,outlook-redemption,Email,Ms Access,Vba,Outlook Redemption,此代码位于MS Access(2010)VBA中,使用Microsoft Outlook 2010的赎回库 我以前有过这个过程,但最近我们进行了Citrix升级,我想我的Outlook中重置了一些东西,现在这个过程不再工作了 我有一个文件夹的.msg文件基本上是预先制作的电子邮件模板与所有正确的格式,图像,文本等 这就是我以前所做的: Dim outlookApp As Object, namespace As Object Dim oItem, MyItem Set outlookApp =
Dim outlookApp As Object, namespace As Object
Dim oItem, MyItem
Set outlookApp = CreateObject("Outlook.Application")
Set namespace = outlookApp.GetNamespace("MAPI")
namespace.Logon
Set MyItem = outlookApp.CreateItemFromTemplate(path_to_dot_msg_file)
'And then there are many calls like this:
MyItem.HTMLBody = Replace(MyItem.HTMLBody, "Dear Person,", "Dear " & name)
'...
Set safeItem = CreateObject("Redemption.SafeMailItem")
Set oItem = MyItem
safeItem.Item = oItem
'this next line displays the email, and as of this line, it looks correct
'safeItem.Display
'but as of this line, the issue occurs
safeItem.HTMLBody = "<p>This is an extra message that shows up before the .msg file</p>" & safeItem.HTMLBody
safeItem.Recipients.ResolveAll
safeItem.Send
Dim outlookApp作为对象,命名空间作为对象
Dim oItem,MyItem
设置outlookApp=CreateObject(“Outlook.Application”)
设置namespace=outlookApp.GetNamespace(“MAPI”)
namespace.Logon
设置MyItem=outlookApp.CreateItemFromTemplate(路径\到\点\消息\文件)
“还有很多这样的电话:
MyItem.HTMLBody=Replace(MyItem.HTMLBody,“亲爱的人”,“亲爱的”&姓名)
'...
设置safeItem=CreateObject(“Redemption.SafeMailItem”)
设置oItem=MyItem
safeItem.Item=oItem
'下一行显示电子邮件,从这一行开始,它看起来是正确的
'safeItem.Display
但从这一行开始,问题就出现了
safeItem.HTMLBody=“这是一条额外的消息,显示在.msg文件”&safeItem.HTMLBody之前
safeItem.Recipients.ResolveAll
安全物品,发送
现在,当发送电子邮件时,.msg内容根本不存在——唯一显示的是我预先添加到HTMLBody的“额外消息”
我需要更改或更新什么?这是我需要在代码或Outlook设置中更改的内容吗
额外:正文插入:
Function insertStringBodyTag(htmlBody As String, stringToInsert As String)
Dim s As String
Dim i As Integer
s = htmlBody
i = InStr(1, s, "<body")
i = InStr(i, s, ">")
s = Left(s, i) & stringToInsert & Right(s, Len(s) - i)
insertStringBodyTag = s
End Function
'Called with safeItem.htmlBody = insertStringBodyTag(safeItem.htmlBody, prefix_string)
函数insertStringBodyTag(htmlBody作为字符串,stringToInsert作为字符串)
像线一样变暗
作为整数的Dim i
s=htmlBody
i=仪表(1,s,“”)
s=左(s,i)和弦插入和右(s,Len(s)-i)
insertStringBodyTag=s
端函数
'使用safeItem.htmlBody=insertStringBodyTag调用(safeItem.htmlBody,前缀\u字符串)
您不能连接两个HTML字符串,而希望返回一个有效的HTML字符串-这两个字符串必须合并-找到的位置。“
(这样您就可以处理带有属性的body元素),然后在“>之后插入HTML字符串.您不能连接两个HTML字符串,而希望返回一个有效的HTML字符串-这两个字符串必须合并-找到“
”的位置(这样您就可以处理带有属性的body元素),然后在“>”之后插入HTML字符串。我试过了,但不起作用(htmlbody似乎变为空白?)。我在帖子中添加了我的代码来说明我的意思。insertStringBodyTag返回时的值是多少?输入时看起来是空白的。此外,当我将safeItem设置为myItem时,它没有携带属性/HTMLbody。我只是手动设置了HTMLbody,它似乎解决了这个问题。您可能想先保存MailItem对象(MailItem.save),以确保MAPI(和Redemption)可以看到最新的更改。我尝试了,但它不起作用(HTMLbody似乎变成空白?). 我在帖子中添加了我的代码来说明我的意思。insertStringBodyTag返回时的值是多少?输入时看起来是空白的。此外,当我将safeItem设置为myItem时,它没有携带属性/HTMLbody。我只是手动设置HTMLbody,它似乎解决了这个问题。您可能需要先保存MailItem对象(MailItem.save),以确保MAPI(和Redemption)可以看到最新的更改。