Microsoft Access ClubAccess超初心者対象ForumAccess初級者対象ForumAccess初・中級者対象ForumAccess VBA Tips ForumDAO、ADO、SQL Forum

     

No1075.VBAからSendObjectメソッドを使用したEメール送信について

タイトルVBAからSendObjectメソッドを使用したEメール送信について
記事No: 1075
投稿日: 2004/07/23(Fri) 09:15
投稿者: SK
いつも返答していただいてありがとうございます。

昨日から、Accessのフォーム上からEメール送信できるような処理を行っております。
処理自体には何も問題はありません。

まず、フォームに宛先・CC・件名・本文のコンボボックス及びテキストボックスを配置して、
コマンドボタンを押すと、指定したレポートをスナップショット形式で、
メールが送信されるようにしております。
メールを送信するアプリケーションは、Outlookです。

コード処理としては、
全ての入力ボックスの入力チェック処理を行った後に、
SendObjectメソッドでメール送信を行い、
エラー処理(エラー番号2293)を行っております。

ここで、問題が発生しました。

DoCmd.SendObject acSendReport, "警告処理", _
acFormatSNP, Me!宛先, strCC, , Me!件名, Me!本文, False

上記のように、一番最後を、Falseと設定しましたので、Outlookで編集しないで、
直接、メールを送信するようにしました。

そうすると・・・・
Microsoft Office Outlookという、タイトルバーのメッセージボックスが出まして、
『プログラムが自動的に電子メールを送信しようとしています。
よろしいですか?
これが予期しない動作である場合は、[いいえ]をクリックしてください。
このプログラムがウィルスである可能性があります。』
という・・・メッセージが表示されてしまいます。
そして、[はい]を押せば、Outlookの送信トレイ(送信済みではない)に置かれます。
[いいえ]を押せば、VBAでのエラー(2293)が出ますので、スキップする処理を行いました。
[ヘルプ]を押せば、Outlookのヘルプが出まして、プログラムがItem.Sendメソッドを使用して電子メールを自動的に送信しようとする。という内容が出ました。

私は、
Outlookの警告メッセージが表示されないようにして、VBAだけで自動的にメールを送信したいのです。

こういうことは出来ますでしょうか???

かなり難しくて悩んでおります。
分かる方がいましたら、アドバイスをお願い致します。


OS:Win2000
Access Version:2003

タイトルRe: 参考リンク
記事No: 1077
投稿日: 2004/07/23(Fri) 09:36
投稿者: YU-TANG
参照先http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=3116;id=access
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=3116;id=access

タイトルRe^2: 参考リンク
記事No: 1078
投稿日: 2004/07/23(Fri) 09:47
投稿者: SK
参考リンクをありがとうございます。
参考にしてみましたところ、

http://support.microsoft.com/default.aspx?scid=kb;ja;263084

上記を見てみたのですが、

私がやりたいことは、このメッセージを強制的に出さないようにしたいのです。

出来るのでしょうか・・・・。

タイトルRe^3: 参考リンク
記事No: 1079
投稿日: 2004/07/23(Fri) 09:50
投稿者: S.S
横から失礼します。
Outlookのバージョンは何ですか?Express?

どちらにしても、警告メッセージを出さなくするにはセキュリティレベルを落とさなければ
なりません。
それかBasp21を取り込むか・・・

タイトルRe^4: 参考リンク
記事No: 1080
投稿日: 2004/07/23(Fri) 09:58
投稿者: SK
> どちらにしても、警告メッセージを出さなくするにはセキュリティレベルを落とさなければ
> なりません。
> それかBasp21を取り込むか・・・

Outlookは2003を使用しております。(Expressではありません。)
Exchange Serverを使用しています。
普通のメールはStarOfficeを利用しているのですが・・・。

警告メッセージを出さないようにするには・・・セキュリティレベルを落とさないといけないと言うことですか。
このPCだけではなく、他のPCでも使用する予定ですので、難しいですね。

そして、
http://www.hi-ho.ne.jp/babaq/basp21.html
で、Basp21を調べてみました。
難しそうですね・・・・。

タイトルRe^5: 参考リンク
記事No: 1081
投稿日: 2004/07/23(Fri) 10:23
投稿者: S.S
BASP21は以外と簡単ですよ。
こんな感じです。

Private Declare Function SendMail Lib "bsmtp" _
   (StrServer As String, StrTo As String, StrFrom As String, _
    StrSubject As String, StrBody As String, StrFile As String) As String

Private Sub 送信_Click()

  Dim RetVal As String
  Dim StrServer As String
  Dim StrTo As String
  Dim StrFrom As String
  Dim StrSubject As String
  Dim StrBody As String
  Dim StrFile As String

  StrServer = SMTPサーバ名、もしくはアドレス
  StrTo = 送信先
  StrFrom = 送信元
  StrSubject = 題名
  StrBody = 本文
  StrFile = 添付ファイル
  RetVal = SendMail(StrServer, StrTo, StrFrom, StrSubject, StrBody, StrFile)

  If Len(RetVal) <> 0 Then
    'RetValに文字列が格納されている場合は送信エラーが発生しています
  End If

これだけです。

タイトルRe^6: 参考リンク
記事No: 1083
投稿日: 2004/07/23(Fri) 10:49
投稿者: SK
> BASP21は以外と簡単ですよ。
> こんな感じです。
>
確かに、じっくり調べれば出来ないことはないかもしれませんね。

現在の時点で、気になる程度で、まだ使用はしておりませんので、
実際に使用してみて、どうしても気になって問題があるようであれば、
BASP21を取り入れてみようと思います。

何も知識がありませんので、
http://www.hi-ho.ne.jp/babaq/
http://member.nifty.ne.jp/hippo2000/perltips/perlmail.htm
http://www.hi-ho.ne.jp/babaq/basp21.html
上記をメインに読んでみようと思いますが、如何でしょうか。

ありがとうございました。


このAccessフォーラム過去ログ集は、Microsoft Access Club が運営しています


 

ページの先頭へ 前ページへ戻る