こんにちは。いつもお世話になっております。
現在、「VB6.0でメーラーを起動し、そこへ添付ファイルを付けて送信を行う」と言う作業を行っております。
ユーザー側で、実行ボタンを押したときに送信まで行うか、送信はせず新規メールの起動だけで終るかを選択できるようになっています。
自分なりに色々と調べて、MAPIを使用したプログラムでの操作はできたのですが、メーラーをOutlook ExpressからMicrosoft Outlookに変更したら、送信部分が上手く動作しませんでした。
どのメーラーでも上手く動くように設定したいのですが、何か方法はありませんでしょうか?
また、送信時に出てしまう確認メッセージを出さずに自動送信する方法はありますか?MAPIを使用せずに添付ファイル付きのメールを送信する方法でも構いません。
宜しくお願い致します。
(system.web...の環境設定が存在せず、←の方法では無理そうでした。)
///// 以下は現在処理を行っているソースです。 ////
MAPISession1.SignOn
MAPIMessages1.SessionID = MAPISession1.SessionID
MAPIMessages1.Compose
MAPIMessages1.RecipType = mapToList
'あて先欄に表示させたい文字
MAPIMessages1.RecipDisplayName = "テストさん"
'あて先のメールアドレス
MAPIMessages1.RecipAddress = "SMTP:yyy@aaa.com"
MAPIMessages1.MsgSubject = "納品明細"
MAPIMessages1.MsgNoteText = "本文内容" & vbCrLf
MAPIMessages1.AttachmentPathName = App.Path & "\納品明細.xls"
'チェック有りの場合は自動送信
If chkAuto.Value = 0 Then
'Falseにすると自動送信になります
MAPIMessages1.Send True
Else
MAPIMessages1.Send False
End If
MAPISession1.SignOff
少なくとも過去ログ検索『添付ファイル』くらいはして、
そこに上がってる方法では実現できない場合、詳細を
説明するくらいはして頂きたいです。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200510/05100162.txt
参考
> どのメーラーでも上手く動くように設定したいのですが、
MAPIを利用している時点で、「どのメーラでもOK」というのは無理でしょう。
MAPI の一部の命令しか実装されていないメーラもありますし、
http://hide.maruo.co.jp/software/hidemarumail/doc13.html
また、そもそも MAPI 非対応のメーラだってありえますから。
すみません。ハンドル名がかぶっているので、できれば変えて頂けないかと…。
ご解答有難うございます。
>特攻隊長まるるう様
添付ファイル以外にも検索し、試してみましたが出来なかったので書き込みしました。詳細と申しましても、初めての試みなので何を説明すればいいのか分かりません。
>いな様
そちらの方も見させていただいたのですが、結局MAPIですよね…?
>魔界の仮面弁護士様
どのメーラーでも…と言っても、とりあえずMS outlookとoutlook Expressくらい動くようにしたいのですが…共同で開発を行っている方にMS outlookで試して頂いた結果、MAPIMessages1.Send True(又はFalse)の部分でエラーになってしまうようなのです。
システムを導入したいPCは多分どちらかのoutlookだと思うので、せめて両方とも上手く稼動するようにしたいのですが…
あ〜、しまった。VB6か
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/mail.aspx
の情報が役立つかと思ったのだが、
>いな様
はい。VB6なんです。
早速URL拝見しましたが、それって、「System.Web.Mail.MailMessage」ですね?
環境設定に「system.web」というのが存在しないのですが、
どこかから追加しないと駄目ですよね??
>私じゃないみい様。
HNかぶってるなんて分からなかったのでごめんなさい。
でも今から変更するのもどうかと思うので、次回から変更します。
>> 送信部分が上手く動作しませんでした。
単に「上手く動作しない」だけではなく、もっと詳しく書いた方が良いと思いますよ。
(たとえば、発生するエラーメッセージやエラー番号など)
> MS outlookとoutlook Expressくらい動くようにしたいのですが
実際のところ、私も MAPI 関連についてはよくわかっていません。
# 環境に依存する部分が大きすぎて、使う気力を無くしてしまって…。(汗)
> エラーになってしまうようなのです。
エラーの詳細がわからないので何とも言えませんが、
さしあたり、下記に該当しそうな情報はありますか?
http://support.microsoft.com/kb/119647
http://support.microsoft.com/kb/291152
http://support.microsoft.com/kb/310325
http://support.microsoft.com/kb/314982
http://support.microsoft.com/kb/324528
http://support.microsoft.com/kb/415900
> 送信時に出てしまう確認メッセージを出さずに自動送信する方法はありますか?
セキュリティ上の理由(ウィルス等への対策)から、現在のバージョンでは、
常に送信確認のメッセージが表示される仕様になっていたような気がします。
http://office.microsoft.com/ja-jp/assistance/HA010506531041.aspx
>魔界の仮面弁士様
ご解答有難うございます。
エラーメッセージをもう一度確認してもらいました。
結果は「予測できないエラーです」のやつです。
上から二つ目にリンクしてくださったものです。
そんなに環境に依存してしまうものなのですね、この方法は…。
sendmailで出来ればいいんだけど…と先輩には言われたのですが、
今日1日中探しても添付ファイルをセットする方法が分からないので
このままで何とかしたいと思っているんですが…難しいことなのでしょうか…。
一応expressの方では正常に動作するので、後はMSoutlookでも動けば問題ないと思うのですが……
なるほど…セキュティの関係上確認メッセージ無しというのは難しいのですね。
分かりました。有難うございます。
後は上手く送信できれば………
> 後はMSoutlookでも動けば問題ないと思うのですが……
Outlook 固定であれば、Outlook.MailItem オブジェクトに
.Attachments.Add する事でファイルを添付できると思います。
> sendmailで出来ればいいんだけど…と先輩には言われたのですが、
> 今日1日中探しても添付ファイルをセットする方法が分からないので
どのsendmailでしょう? (メールサーバソフトの事じゃないですよね)
Office 2003 の文書オブジェクトが持つ SendMail メソッドだと、
開いている文書自体の送付しかできないようです。
bsmtp.dll や basp21.dll の SendMail の事であれば、第6引数に、
添付ファイルのフルパスを指定するだけで済みます。
すみません。sendmailじゃなくて、mailtoでした。
mailtoにファイルを添付できれば…ということでした。ごめんなさい。
outlook固定ではないのですよ…。
Expressかputlookのどちらを使用しているのか分からないので、
どちらでも送信できるように…とのことなのです。
どちらかを使用していることは間違いないのですが…そのどちらかが分からないので困っています。
>どちらかを使用していることは間違いないのですが
なら、どちらがインストールされてるか調べて2つの
処理に分岐するのが一番現実的では?
レジストリに書かれてある内容が違ったりしないのかな?
http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+200510/05100030.txt
魔界の仮面弁士さま、ご解答してくださった皆様、色々と有難うございました。
上司から仕様の変更指示を受けまして、
現在MAPIで動作できている現状でよいと言われました。
私としてはしっくり来ない終わり方ですが、色々と勉強になりました。
有難うございました。
ツイート | ![]() |