我試圖從我們的ERP系統發送電子郵件。我嘗試使用SMTP,但它只適用於內部郵件,並且因爲外部郵件抱怨無法中繼或某些內容而失敗。我認爲經理要麼不想知道如何正確配置Exchange。如何自動化Outlook?
所以我的老闆讓我用Outlook。問題是我的代碼在調試中工作正常,但如果Outlook處於打開狀態,則會失敗,幾乎在任何情況下都會如此。我確實讓它能夠修改供應商安裝,但我們不希望這樣做。我們正在使用Intuitive ERP 8.5。它將庫文件存儲在標準文件夾中,並且存在用於任何自定義代碼或繼承供應商對象的自定義文件夾。
Program Files文件\ IntuitiveERP.exe Program Files文件\ IntuitiveERP \定製 Program Files文件\ IntuitiveERP \標準
如果我把程序的目錄上C盤根:並結合標準和自定義文件夾代碼工作無論Outlook是打開還是關閉。我們不希望修改供應商的安裝,因爲如果可能導致更新問題。
'Fails with Cannot create ActiveX component.
objOutlook = CType(CreateObject("Outlook.Application"), Outlook.Application)
'Fails with Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005.
objOutlook = New Outlook.Application
mobjEmail = CType(objOutlook.CreateItem(Outlook.OlItemType.olMailItem), Outlook.MailItem)
With mobjEmail
.CC = strEmployeeEmail
.Subject = String.Format(Constants.RFQ.Email.Subject, strRFQID)
.To = strTo
.Body = Constants.RFQ.Email.Body
.Attachments.Add(String.Format(Constants.RFQ.Output.FullPath, strRFQID))
.Display(True)
End With
任何想法如何在Outlook打開時獲取對Outlook的引用? 任何替代解決方案?
如果SMTP失敗,是什麼讓你知道Outlook不會? – Ares
請勿使用Outlook。這是一個黑客。然後,無論您的應用在哪裏運行,都需要安裝Outlook。使用SMTP並告訴他們在Exchange中配置繼電器。它就是這樣(老實說,這不是太棘手)。 –
@Ares - 因爲SMTP需要在Exchange中允許顯式中繼,因爲存在安全問題,以防止流氓軟件將郵件從服務器上彈出。前景不同;它被設計爲在AD域設置中與Exchange一起工作,並且不使用SMTP。 –