我正在處理一個問題,我的項目,當我點擊按鈕,一個默認的電子郵件客戶端應該彈出,如果有附件,它應該會自動附加到默認電子郵件這樣的客戶端。如何打開默認的電子郵件客戶端附件
我已經嘗試了很多方法如何做到這一點。首先,我使用MAPI,但MAPI無法檢測到,即使我已經控制面板中設置默認的電子郵件客戶端,它顯示
我已經在網上搜索關於這兩個消息框這些錯誤,但沒有明確或明確的答案給我。 HERE'S我在MAPI中使用的代碼。
我還使用mail:to
協議來調用默認的電子郵件客戶端,使用這行代碼處理上述協議。
Dim proc As System.Diagnostics.Process = New System.Diagnostics.Process()
Dim filename = Convert.toChar(34) & "C:\USERS\JOSHUA~1.HER\DOWNLO~1\ASDPOR~1.PDF" & Convert.toChar(34)
Debug.Writeline(filename)
Dim asd As String = String.Format("mailto:[email protected]?subject=hello&body=love my body&Attach={0}", filename)
proc.StartInfo.FileName = asd
proc.Start()
但仍然沒有運氣。我閱讀了一個線程,mail:to
不再處理附件,但是這行代碼打開了我的默認電子郵件客戶端的正文和主題,但沒有附件。在filename
變量方面,我已經嘗試過每種路徑格式,我讀到應該使用8.3路徑格式。但仍然不起作用。
我使用的最後一種方法是擴展System.Net.MailMessage.MailMessage()
以下THIS答案。這在打開默認電子郵件客戶端並將附件附加到郵件方面起作用,但這是不可編輯的,並且默認電子郵件客戶端上沒有發送按鈕,因爲這行代碼僅生成一個.eml文件並將其打開。我正在考慮解析eml文件,但我仍然不知道如何以新的消息形式逐步打開默認的電子郵件客戶端。這裏的照片
你們有什麼想法如何實現這一目標?謝謝!
您是否嘗試過使用帶有ApartmentState.STA的新ThreadStart的MAPI方法?這是我能夠爲我工作的唯一途徑。 –