我有一个网页,其中有一个按钮,可以将页面上的一封信发送给电子邮件配方。目前我们使用Lotus Notes和VB脚本,我们可以创建Lotus Notes的对象,该对象的一个属性是PutInFolder。用户单击电子邮件按钮后,脚本将发送电子邮件,并将电子邮件保存在用户计算机上的某个文件夹中。我们公司现在正在切换到Outlook 2007,我希望用Outlook对象做同样的事情。我们的开发只是本地Intranet,只有少数用户可以访问它。无论如何,我的问题是我似乎无法找到与Outlook应用程序相同的功能。
我确实发送了当前使用此逻辑的电子邮件。有没有人对如何在用户的Outlook文件夹中保存电子邮件有任何想法?我试着寻找一个我可以打电话但我找不到任何搜索的属性列表。也许我在搜索中没有正确的终点。
谢谢。
sub send_mailvb(sendto, sendcc, sendbcc, subject_text, body_text, attachment1, attachment2, attachment3)
'Open mail, adress, attach report
dim objOutlk 'Outlook
dim objMail 'Email item
dim strMsg
const olMailItem = 0
'Create a new message
set objOutlk = createobject("Outlook.Application")
set objMail = objOutlk.createitem(olMailItem)
' Setup send to
objMail.To = sendto
' Setup send cc
If sendcc <> "" Then
objMail.cc = sendcc
End If
' Setup send bcc
If sendbcc <> "" Then
objMail.bcc = sendbcc
End If
'Set up Subject Line
objMail.subject = subject_text
'Add the body
strMsg = body_text & vbcrlf
'Add an attachments
If attachment1 <> "" Then
objMail.attachments.add(attachment1)
End If
If attachment2 <> "" Then
objMail.attachments.add(attachment2)
End If
If attachment3 <> "" Then
objMail.attachments.add(attachment3)
End If
objMail.body = strMsg
objMail.display 'Use this to display before sending, otherwise call objMail.Send to send without reviewing
'Clean up
set objMail = nothing
set objOutlk = nothing
End Sub
答案 0 :(得分:2)
供将来参考......我找到了我想要的解决方案。这不是一团糟。这是修改后的源代码,用于复制发送并将电子邮件保存到特定文件夹,以防其他人查看。感谢Tester101我正在寻找的网站。再次,这是嵌入在HTML页面中的vbscript。
sub send_mailvb(sendto, sendcc, sendbcc, subject_text, body_text, attachment1, attachment2, attachment3)
'Open mail, adress, attach report
dim objOutlk 'Outlook
dim objMail 'Email item
dim strMsg
dim myInbox
const olMailItem = 0
'Create a new message
set objOutlk = createobject("Outlook.Application")
Set objNameSpace = objOutlk.Session
set objMail = objOutlk.createitem(olMailItem)
Set myNameSpace = objOutlk.GetNamespace("MAPI")
Set myExplorer = objOutlk.ActiveExplorer
' 6 at least on my machine pointed to the Inbox (should be the same as constant olFolderInbox). Within the Inbox I have a folder called Test
Set myExplorer.CurrentFolder = myNameSpace.GetDefaultFolder(6).Folders("Test")
Set myFolder = myExplorer.CurrentFolder
' Setup send to
objMail.To = sendto
' Setup send cc
If sendcc "" Then
objMail.cc = sendcc
End If
' Setup send bcc
If sendbcc "" Then
objMail.bcc = sendbcc
End If
'Set up Subject Line
objMail.subject = subject_text
'Add the body
strMsg = body_text & vbcrlf
'Add an attachments
If attachment1 "" Then
objMail.attachments.add(attachment1)
End If
If attachment2 "" Then
objMail.attachments.add(attachment2)
End If
If attachment3 "" Then
objMail.attachments.add(attachment3)
End If
objMail.body = strMsg
// objMail.display 'Use this to display before sending, otherwise call objMail.Send to send without reviewing
objMail.Save
objMail.Move(myFolder)
objMail.Send
'Clean up
set objMail = nothing
set objOutlk = nothing
End Sub
答案 1 :(得分:0)
我找到了这篇文章。它可能会有所帮助。
http://www.outlookcode.com/codedetail_print.aspx?id=1041
如果不是这个网站有很好的资源来处理Outlook。
答案 2 :(得分:0)
看起来MailItem对象具有Save方法,以及SaveAs方法。所以你应该可以做这样的事情。
objMail.SaveAs "C:\Test.msg", 3
3是以olMSG格式保存邮件,请参阅OlSaveAsType Enumeration。
答案 3 :(得分:0)
我有一个解决方案。我们决定bcc发送电子邮件的人然后使用outlook规则将电子邮件移动到指定的outlook文件夹。感谢所有回复的人。