我尝试编写一个VBA脚本,该脚本会自动回复位于共享邮箱收件箱中的邮件。目前它只是一个测试,稍后我想回复新传入的邮件。 但是,到目前为止,如果我尝试运行代码,Outlook崩溃时出现错误“microsoft outlook已停止工作”,我必须重新启动Outlook。
fyi:我正在使用德语版Outlook 2007。
Sub ReplyMail()
Dim myOutApp As Object
Dim myNameSpace As Object
Dim myMailFolder As Object
Dim myRecipient As Outlook.Recipient
boxName = "sharedmailbox@host.de" 'configure mailbox address here
'Get Mailbox folder
Set myOutApp = CreateObject("Outlook.application")
Set myNameSpace = myOutApp.GetNamespace("MAPI")
Set myRecipient = myNameSpace.CreateRecipient(boxName)
myRecipient.Resolve 'convert mail address into mailbox name
Set myMailFolder = myNameSpace.GetSharedDefaultFolder(myRecipient, olFolderInbox)
Dim Item As Object
Set Item = myMailFolder.Items(1)
Dim oMail As Outlook.MailItem
Set oMail = Item.Reply
With oMail
.BodyFormat = olFormatHTML
.HTMLBody = "<HTML>This is a test mail.</HTML>"
.Send
End With
End Sub
如果使用“.display”而不是“.send”,邮件会正确弹出,我可以手动发送邮件。
我真的不知道如何解决这个错误,请帮助!
谢谢!
迈克尔
答案 0 :(得分:0)
很奇怪! 除非它是一个特殊的错误,我没有看到它。 小注释:将对象声明为Outlook对象:
Dim myOutapp as outlook.application
Dim myNameSpace as outlook.namespace
Dim myMailFolder as Mapifolder
这对于一般性能(对象是一般类型)但几乎肯定不会解决您的问题。
如果我遇到你的情况,我会尝试从内存中完全退出Outlook,修复或重新安装Outlook / Office。我不认为你的代码有些严重错误;由于.display有效,我很惊讶。
答案 1 :(得分:0)
访问权限可能存在问题 C:\用户\
从某个时间点开始打开某些电子邮件时,我遇到了类似的问题。以某种方式取消了对该文件夹的访问权限。 所以我按照这个程序,一切都很好了: http://www.addictivetips.com/windows-tips/windows-7-access-denied-permission-ownership/