@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

(ASP.NET)OUTLOOK2003を用いてメール送信

投稿者投稿内容
TAKA
会議室デビュー日: 2005/03/16
投稿数: 10
投稿日時: 2005-07-19 17:17
いつもお世話になっております。

現在、ASP.NET(VB.NET)からOUTLOOK2003を用いてメール送信
をしようと考えています。
メール送信用のクラスを作成し、Windowsアプリで実行すると
メール送信できたのですが、ASP.NETに組み込んで送信すると
「アクセスが拒否されました」というエラーが発生し、メール
の送信ができません。
Windowsアプリで送信出来ているのでメール送信用のクラスは
正しく動いていると思います。

どなたが解決策をご教授していただけないでしょうか?
お願いいたします。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-07-19 18:09
OUTLOOKはサーバーにインストールされているのですよね?
メールを送信している最低限のコードを提示されたほうが回答しやすいと思います。
hira
常連さん
会議室デビュー日: 2004/05/07
投稿数: 33
投稿日時: 2005-07-19 18:16
TAKAさん、こんにちは。Hiraです。

エラーメッセージの通り、実行ユーザに
OUTLOOKのアクセス権が無いのでは無いでしょうか?

OUTLOOKを使うPGを組んだことが無いので、
断言はできませんが、たぶんそうだと思います。

ASP.NETの実行ユーザに対し、
OUTLOOKの起動権限を与えればいいと思います。

※設定方法については、ASP.NETでEXCELを作成の例がたくさんあるので
 それを参考にしてください。

#的外れでしたら、すみません。


追記:
 Office のサーバーサイド オートメーションについてのページです。参考にしてください。
 http://support.microsoft.com/default.aspx?scid=KB;ja;JP257757



[ メッセージ編集済み 編集者: hira 編集日時 2005-07-19 18:49 ]
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2005-07-19 18:18
諸農です。

直接の回答ではないです。
もしも余力があれば、System.Web.Mail.SmtpMailの利用を
検討されてみてはいかがでしょうか。


引用:

メール送信できたのですが、ASP.NETに組み込んで送信すると
「アクセスが拒否されました」というエラーが発生し、メール
の送信ができません。



OutLook2003の実行権限が無いと思われます。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
TAKA
会議室デビュー日: 2005/03/16
投稿数: 10
投稿日時: 2005-07-19 18:18
burton999様、ご返答ありがとうございます。
サーバーにはOUTLOOK2003はインストールされています。

ご指摘のとおり送信部分のソースがないと返答しにくい
ですね。
以下のメール送信は以下の方法で行っています。

----------------------------------------------------------
Dim oApp As Outlook._Application
Dim oNS As Outlook._NameSpace
Dim oMail As Outlook.MailItem

oApp = New Outlook.Application
oNS = oApp.GetNamespace("mapi")

'メールボックスを指定
oNS.Logon("メールボックス名", "パスワード", False, True)
oMail = oApp.CreateItem(Outlook.OlItemType.olMailItem)

'送信先
oMail.To = "送信先メールアドレス"

'件名
oMail.Subject = "件名"

'本文
oMail.Body = Value

'メールを送信する
oMail.Send()
----------------------------------------------------------

以上のロジックでメール送信をしようと考えています。
おかしい所がありましたらご指摘お願いいたします。
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2005-07-19 18:50
どもです。がると申します。
門外漢から一言。

ソースの添付をされていたようなのですが。
ソースの「どの行で」エラーが出たのかをちゃんと
把握できるようにすると、以降のデバッグも早いと
思うです。

今回に限らず「いつでも使える」テクニックなので、
一度腰をすえて覚えるとよろしいかと ^^

具体的には。
例えば、まず以下のソースで走らせるです。

コード:
Dim oApp As Outlook._Application
Dim oNS As Outlook._NameSpace
Dim oMail As Outlook.MailItem

oApp = New Outlook.Application



次に
コード:
Dim oApp As Outlook._Application
Dim oNS As Outlook._NameSpace
Dim oMail As Outlook.MailItem

oApp = New Outlook.Application
oNS = oApp.GetNamespace("mapi")



次に
コード:
Dim oApp As Outlook._Application
Dim oNS As Outlook._NameSpace
Dim oMail As Outlook.MailItem

oApp = New Outlook.Application
oNS = oApp.GetNamespace("mapi")

'メールボックスを指定
oNS.Logon("メールボックス名", "パスワード", False, True)



次に
コード:
Dim oApp As Outlook._Application
Dim oNS As Outlook._NameSpace
Dim oMail As Outlook.MailItem

oApp = New Outlook.Application
oNS = oApp.GetNamespace("mapi")

'メールボックスを指定
oNS.Logon("メールボックス名", "パスワード", False, True)
oMail = oApp.CreateItem(Outlook.OlItemType.olMailItem)



こんな感じで。そうすれば「どの行でNGか」が
わかるかと思うです。

で、「どの行でNGが出ているのか」がわかれば、
もうちょっと色々と調べたり試したりも容易なのかなぁ
と思うのですがどうでしょ?

ちょっと手間な上に原始的な方法ですが。
デバッグ手法の一つとして、身に着けて損のない
方法だと思いますよ ^^
TAKA
会議室デビュー日: 2005/03/16
投稿数: 10
投稿日時: 2005-07-19 18:54
hira様・諸農様、ご返答ありがとうございます。

OutLook2003の実行権限がないという事なので
以下のページを参考にOUTLOOK2003に関係しそうな物に権限を
付けてみました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18004&forum=7
実際につけたものは
  Outlook Office Finder
  Outlook メッセージ添付ファイル
です。

でも、まだ「アクセスが拒否されました」というエラーが返ってきます。
他になにか権限を与えなければならない物がありのでしょうか?

申し訳ございませんが、ご教授お願いいたします。

諸農様
諸農様が言われたSystem.Web.Mail.Smtpを使ってのメール送信ですが、
はじめはその方法で作成していました。しかし、客先よりOUTLOOK2003
をつかってメール送信してほしいと言われ現在変更中なのです。
System.Web.Mail.Smtpを使っていた時はメール送信出来ていたのですが・・・
TAKA
会議室デビュー日: 2005/03/16
投稿数: 10
投稿日時: 2005-07-19 19:06
がる様、ご返答ありがとうございます。

がる様のご指摘を元にどこでエラーが発生しているかを
確認しました。

コード: -----------------------------------------------------------------------

Dim oApp As Outlook._Application
Dim oNS As Outlook._NameSpace
Dim oMail As Outlook.MailItem

oApp = New Outlook.Application ←エラー発生

-------------------------------------------------------------------------------

いきなりエラーが発生しました。
どうもOutlook.Applicationを生成している所でエラーが
発生しました。

これは、hira様・諸農様のご指摘の「権限がない」為に
Outlook.Application生成時にエラーは発生しているのでしょうか?

質問ばかりで申し訳ありませんが、ご教授お願いいたします。


スキルアップ/キャリアアップ(JOB@IT)