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^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
これだけです。
|
このAccessフォーラム過去ログ集は、Microsoft Access Club が運営しています

|