C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.61103 の関連記事表示

<< 0 >>
■61103  Re[1]: 【C#】MAPIを用いてメーラーを起動
□投稿者/ 魔界の仮面弁士 -(2011/08/02(Tue) 12:42:20)
    掲示板の利用ルールにも記載されていますように、半角カナは使用しないようお願いいたします。

    No61085 (KAMIMURA さん) に返信
    > 使用するメーラーは「Microsoft Office Outlook」または
    > 「Outlook Express」となります。
    「Microsoft Windows Mail」や 「Microsoft Internet Mail and News」は対象外なのですね。
    (まぁ、MSIMN + C# の組み合わせは流石に無いと思いますが、Windows Mail はありそうな気が)


    > C#(ASP.NET)
    MAPI って、ASP.NET から利用できましたっけ?

    現在の MAPI は、ユーザー応答を必要とするタイプの COM API として実装されているため、
    サーバー動作の無人アプリや、Web Client からは利用できないと思っていたのですが…。
    (もちろん、Windows Client として実装する場合は良いでしょうけれど)

    どうしても Web Client として実装したいなら、IE の object タグに C# 製 DLL を
    埋め込んで実行させるという手はありますが、セキュリティ上の問題が残りますね。


    > MAPIを使用を前提に検討いたしました。
    Windows Client から実行した場合においては、当方環境(Outlook 2007)で
    提示された C# コードでエラーなく動作しました。

    ということで、先に環境側の確認をしておいてください。

     (1) Windows Client から呼び出した場合もエラーになるのか?

     (2) 非.NET な環境から利用した場合にも同様のエラーになるのか?

     (3) Outlook VBA あるいは Excel VBA などから Outlook (≠Express) の
      Send メソッド経由でメールを送出することはできるのか?
      http://www.ken3.org/cgi-bin/group/vba_outlook.asp


    > // 「参照の追加」より、「Microsoft MAPI Controls 6.0」を追加

    MSMAPI はデザインタイムライセンスが要求されるコンポーネントですが、
    その点はクリア済みでしょうか。(VS6 開発環境あるいは VB6Controls.reg 等)

    なお、MSMAPI32.OCX を使えない場合は、mapi32.dll を直接利用する手もあります。
    http://www.pinvoke.net/default.aspx/mapi32.MAPISendMail


    > System.Runtime.InteropServices.COMException (0x800A7D02):
    VB6 環境で「Err.Raise &H800A7D02」を実行したところ、実行時エラー 32002 に変換されました。
    800A7D02 だけではなく、32002 という番号でも情報を探してみてください。

    こちらの方でも、ヘルプファイル(mapi98.chm)の「MAPI コントロールのエラー定数」を
    見てみたのですが、そこに書かれているのは、
      mapFailure 32002 予期せぬエラーが発生しました。
    という程度で、それ以上の情報は無さそうです。


    同様に、オンライン版 MSDN Library も参照してみました。
    既に日本語版が閉鎖されているため、英語版ページから辿って行きます。
    http://msdn.microsoft.com/en-us/library/aa228170%28VS.60%29.aspx
    こちらは、日本語版よりも少し詳しく書かれてはいましたが、
      mapFailure 32002 Unspecified failure has occurred
      An unspecified error occurred during the current action.
      For example, the action was unable to delete or address mail correctly.
    という程度なので、残念ながら解決には至りそうな情報は見当たりませんでした。


    >  MapiMs.Send(true);
    true 指定という事は、Outlook 等の送信画面が表示され、そこで「送信」ボタンを
    手動で押す必要がありますが、それは構わないのですよね。

    # false を指定した場合も、最近の環境 (Outlook 2002 以降?) では
    # ユーザー操作は必要になりますけれどね。


    > try
    > {
    >  MapiMs.Send(true);
    >  MapiSs.SignOff();
    > }
    > catch
    > {
    >  MapiSs.SignOff();
    > }
    逆運の覇者さんも書かれていますが、try 句と catch 句の両方で MapiSs.SignOff(); を
    呼んでいるのであれば、それらは finally にまとめた方が良い気がします。
記事No.61085 のレス /過去ログ102より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -