2016-07-15 8 views
3

私はERPシステムから電子メールを送信しようとしています。私はSMTPを使用しようとしましたが、それは内部メールに対してのみ機能し、外部メールはリレーや何かができないと不平を言って失敗します。私はマネージャーがExchangeを適切に構成する方法を知りたくない、またはそれを正しく理解していないと思います。Outlookを自動化するには?

私の上司はOutlookを使用するように指示しました。問題は私のコードはデバッグでうまく動作しますが、Outlookが開いていると失敗します。これはほとんどすべての場合に発生します。私はベンダーのインストールを修正するためにそれを手に入れましたが、それをしたくないです。私たちは直感的なERP 8.5を使用しています。ライブラリファイルを標準フォルダに格納し、カスタムコードまたは継承されたベンダオブジェクト用のカスタムフォルダがあります。

プログラムファイル\ IntuitiveERP.exe プログラムファイル\ IntuitiveERP \カスタム プログラムファイル\ 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への参照を取得する方法はありますか。 代替ソリューションはありますか?

+0

SMTPが失敗した場合、Outlookにはどういう考えがありますか? – Ares

+1

Outlookを使用しないでください。それこそがハックです。その後、あなたのアプリケーションが実行されているどこにでもOutlookをインストールする必要があります。 SMTPを使用して、Exchangeにリレーを設定するように指示します。それはそれです(正直で言うと、あまりにもトリッキーではありません)。 –

+1

@Ares - 不正なソフトウェアによるメールのバウンスを防止するため、セキュリティ上の理由から、SMTPでは明示的なリレーをExchangeで「許可」する必要があるためです。 Outlookは異なる。 ADドメイン設定でExchangeと連携するように設計されており、SMTPは使用しません。 –

答えて

2

あなたはこれを試すことができます。

Try 
    objOutlook = Marshal.GetActiveObject("Outlook.Application") 
Catch ex As Exception 
    objOutlook = CType(CreateObject("Outlook.Application"), Outlook.Application) 
End Try 

注意を管理者としてVisual Studioの内部で実行し、それがすでにユーザーモードで実行されている場合、Outlookをアクセスする際に問題があるということ。 thisを参照してください。 binフォルダから直接EXEを実行してみてください(管理者として実行しないでください)。

+0

ありがとうございました。私は持っている問題の1つを指摘しました。 ERPソフトウェアは管理者として実行する必要があります。 Outlookへの参照を取得する(ユーザーモードで実行する)が失敗します。これは、Outlookが最初に閉じられた場合に機能する理由です。これは私の上司にExchangeを適切に設定させるのに役立ちます。 –

関連する問題