VB6.0で添付ファイル付きのメールを送信するには?

解決


みい  2005-10-26 20:34:18  No: 126916

こんにちは。いつもお世話になっております。

現在、「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


特攻隊長まるるう  2005-10-26 21:11:10  No: 126917

少なくとも過去ログ検索『添付ファイル』くらいはして、
そこに上がってる方法では実現できない場合、詳細を
説明するくらいはして頂きたいです。


いな  2005-10-26 21:14:23  No: 126918

http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200510/05100162.txt

参考


魔界の仮面弁士  2005-10-26 21:40:16  No: 126919

> どのメーラーでも上手く動くように設定したいのですが、
MAPIを利用している時点で、「どのメーラでもOK」というのは無理でしょう。

MAPI の一部の命令しか実装されていないメーラもありますし、
http://hide.maruo.co.jp/software/hidemarumail/doc13.html
また、そもそも MAPI 非対応のメーラだってありえますから。


みい(スレ主じゃない人)  2005-10-26 21:49:26  No: 126920

すみません。ハンドル名がかぶっているので、できれば変えて頂けないかと…。


みい  2005-10-26 21:55:22  No: 126921

ご解答有難うございます。
>特攻隊長まるるう様
  添付ファイル以外にも検索し、試してみましたが出来なかったので書き込みしました。詳細と申しましても、初めての試みなので何を説明すればいいのか分かりません。

>いな様
  そちらの方も見させていただいたのですが、結局MAPIですよね…?

>魔界の仮面弁護士様
  どのメーラーでも…と言っても、とりあえずMS outlookとoutlook Expressくらい動くようにしたいのですが…共同で開発を行っている方にMS outlookで試して頂いた結果、MAPIMessages1.Send True(又はFalse)の部分でエラーになってしまうようなのです。
システムを導入したいPCは多分どちらかのoutlookだと思うので、せめて両方とも上手く稼動するようにしたいのですが…


いな  2005-10-26 22:01:19  No: 126922

あ〜、しまった。VB6か

http://www.microsoft.com/japan/msdn/vbasic/migration/tips/mail.aspx

の情報が役立つかと思ったのだが、


みい  2005-10-26 22:06:13  No: 126923

>いな様
  はい。VB6なんです。
  早速URL拝見しましたが、それって、「System.Web.Mail.MailMessage」ですね?
  環境設定に「system.web」というのが存在しないのですが、
  どこかから追加しないと駄目ですよね??


みい(レス主)  2005-10-26 22:08:32  No: 126924

>私じゃないみい様。
  HNかぶってるなんて分からなかったのでごめんなさい。
  でも今から変更するのもどうかと思うので、次回から変更します。


魔界の仮面弁士  2005-10-26 22:51:40  No: 126925

>> 送信部分が上手く動作しませんでした。
単に「上手く動作しない」だけではなく、もっと詳しく書いた方が良いと思いますよ。
(たとえば、発生するエラーメッセージやエラー番号など)

> 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


みい(レス主)  2005-10-26 23:07:55  No: 126926

>魔界の仮面弁士様
ご解答有難うございます。
エラーメッセージをもう一度確認してもらいました。
結果は「予測できないエラーです」のやつです。
上から二つ目にリンクしてくださったものです。

そんなに環境に依存してしまうものなのですね、この方法は…。
sendmailで出来ればいいんだけど…と先輩には言われたのですが、
今日1日中探しても添付ファイルをセットする方法が分からないので
このままで何とかしたいと思っているんですが…難しいことなのでしょうか…。

一応expressの方では正常に動作するので、後はMSoutlookでも動けば問題ないと思うのですが……

なるほど…セキュティの関係上確認メッセージ無しというのは難しいのですね。
分かりました。有難うございます。
後は上手く送信できれば………


魔界の仮面弁士  2005-10-27 00:18:31  No: 126927

> 後はMSoutlookでも動けば問題ないと思うのですが……
Outlook 固定であれば、Outlook.MailItem オブジェクトに
.Attachments.Add する事でファイルを添付できると思います。

> sendmailで出来ればいいんだけど…と先輩には言われたのですが、
> 今日1日中探しても添付ファイルをセットする方法が分からないので

どのsendmailでしょう? (メールサーバソフトの事じゃないですよね)

Office 2003 の文書オブジェクトが持つ SendMail メソッドだと、
開いている文書自体の送付しかできないようです。

bsmtp.dll や basp21.dll の SendMail の事であれば、第6引数に、
添付ファイルのフルパスを指定するだけで済みます。


みい(主)  2005-10-27 01:03:40  No: 126928

すみません。sendmailじゃなくて、mailtoでした。
mailtoにファイルを添付できれば…ということでした。ごめんなさい。

outlook固定ではないのですよ…。
Expressかputlookのどちらを使用しているのか分からないので、
どちらでも送信できるように…とのことなのです。
どちらかを使用していることは間違いないのですが…そのどちらかが分からないので困っています。


特攻隊長まるるう  2005-10-27 20:33:45  No: 126929

>どちらかを使用していることは間違いないのですが
なら、どちらがインストールされてるか調べて2つの
処理に分岐するのが一番現実的では?
レジストリに書かれてある内容が違ったりしないのかな?
http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+200510/05100030.txt


みい(主)  2005-10-27 20:34:44  No: 126930

魔界の仮面弁士さま、ご解答してくださった皆様、色々と有難うございました。

上司から仕様の変更指示を受けまして、
現在MAPIで動作できている現状でよいと言われました。
私としてはしっくり来ない終わり方ですが、色々と勉強になりました。
有難うございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加