我在看這個代碼片段從這裏另一個問題(MS訪問VBA):https://stackoverflow.com/a/17975507/1085885通過MS訪問VBA/Outlook中發送電子郵件,選擇發送模式
眼下這個代碼只能當我運行它,而展望開了。有沒有辦法讓這個代碼「打開Outlook」,然後運行所有的發送代碼?
其次,我該如何選擇從哪個Outlook配置文件發送?我可以訪問兩個不同的配置文件,它從我的主要頂級收件箱發送,但我希望它來自我的第二個收件箱。
我在看這個代碼片段從這裏另一個問題(MS訪問VBA):https://stackoverflow.com/a/17975507/1085885通過MS訪問VBA/Outlook中發送電子郵件,選擇發送模式
眼下這個代碼只能當我運行它,而展望開了。有沒有辦法讓這個代碼「打開Outlook」,然後運行所有的發送代碼?
其次,我該如何選擇從哪個Outlook配置文件發送?我可以訪問兩個不同的配置文件,它從我的主要頂級收件箱發送,但我希望它來自我的第二個收件箱。
您需要登錄到指定的配置文件。創建Outlook應用程序
設置oApp =的CreateObject( 「Outlook.application」)的一個實例後
添加類似以下內容:
set oNS = oApp.GetNamespace.Logon
oNS.Logon("MyProfileName")
注意如果Outlook已經在運行,登錄會做沒有。您需要使用Extended MAPI(C++或Delphi或MAPI包裝器,如Redemption(RDOSession.Logon))才能登錄到指定的配置文件。
爲什麼不使用單個配置文件並創建多個accpunts?然後可以設置MailItem.SendUsaingAccount屬性來指定一個特定的帳戶
如何使用SendUsingAccount屬性?我確實創建了MailItem(請參閱代碼) –
嘗試這種方式
Private Sub Command1_Click()
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
On Error Resume Next
'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
'Outlook wasn't running, start it from code
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If
'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)
With oItem
'Set the recipient for the new email
.To = "[email protected]"
.Send
End With
If bStarted Then
' 'If we started Outlook from code, then close it
oOutlookApp.Quit
End If
'Clean up
Set oItem = Nothing
Set oOutlookApp = Nothing
End Sub
的可能重複。[MS訪問VBA:發送電子郵件通過Outlook(http://stackoverflow.com/questions/ 17973549/ms-access-vba-sending-an-email-through-outlook) – Elias
這不是重複的;它是一個followu使用不同範圍的問題 –