• ベストアンサー

VB6にてメールを送信する方法

VB6にて送信アカウント、送信先を指定してメールを送信する方法を知りたいのですが。どんなコントロールを使えば良いでしょうか?特別なOCXがいるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#5584
noname#5584
回答No.1

自前でSMTPを実装することは不可能ではないと思いますが、おそらく膨大な時間と労力が必要になると思いますのでお奨めしません。 という訳で、必然的に既存のコンポーネントを利用することになりますが、もっとも知名度が高いと思われるのが、BASP21というものです。 http://www.hi-ho.ne.jp/babaq/index.html http://www.b21soft.co.jp/basp21/ この他、Office 2000以上が利用可能な環境であれば、 「Microsoft CDO for Windows 2000 Library」(cdosys.dll) というコンポーネントが利用可能です。 ただし、ライセンスの問題 (非Officeユーザの再配布権など) は未確認です。 私自身、CDOを利用した経験が1度だけありますが、MSDNのドキュメントが少なかったため、市販書籍掲載の簡単なサンプルプログラムを参考にしつつ、オブジェクトブラウザでメソッド/プロパティを捜し、試行錯誤しながら作ったと記憶しています。

参考URL:
http://www.hi-ho.ne.jp/babaq/index.html,http://www.b21soft.co.jp/basp21/
lord_chan
質問者

お礼

ありがとうございました。参考になりました。

その他の回答 (4)

  • dasaida
  • ベストアンサー率0% (0/1)
回答No.5

申し訳ないです。MINEでは、なくMIMEでした。ネットで 検索してみてください。詳しい説明が結構ヒットします。 メールの本文内容やサブジェクトなどの文字コードは通 常Base64などの決まりにそってエンコードして送ります。 理由は、基本的にインターネット上では英文字が標準文 字で日本語を送信するためには、そのデータ単位にあわ せる必要が有るからです。最近は、プレーンのテキスト でも結構大丈夫ですが、英文字しか処理できないサーバ ーを通ると日本語は文字化けしてしまいます。 また、半角カナ文字は基本的にはメールで扱うことがで きません。親切なメールソフトなどだと全角カナにして おくってくれたりしますのでためしに送ってみてくださ い。 などなどその辺を説明すると長い話になってしまいます。 エンコードについては、大変ですがSMTPでメール を送信することは、結構簡単にできます。 コマンドについて検索したらいいHPがありました。 このコマンドを文字列にしてMSWINSCK.OCXをつかって SendDataメソッドで送信します。 メールサーバーへの接続は、Winsockで普通に接続すれ ばOKです。ダイアルアップなどを使う場合は、あらか じめ接続しておく必要がありますが。 http://www.puni.net/~mimori/smtp/ref.html

lord_chan
質問者

お礼

ありがとうございました。参考になりました。

  • dasaida
  • ベストアンサー率0% (0/1)
回答No.4

MSWINSCK.OCXをつかってSendDataメソッドでSMTPのコマンドを送信すればおくれますよ。メールを送ることよりもむしろMINEの設定などで苦労すると思います。送るだけでしたら結構簡単ですので試してみてはいかがでしょうか?

lord_chan
質問者

補足

>MSWINSCK.OCXをつかってSendDataメソッドでSMTPのコマンドを送信すればおくれますよ。 興味深いです、具体的にどんなコマンドをおくればいいのでしょうか?その辺の知識は全くないもので(-_-;) 「MINE」って何(?_?)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

http://www.hitachi-to.co.jp/prod/prod_2/inter/ip4ap/function.html なんて言うのを見つけました。ご参考になれば。 市販広告しているところを見ると、ActiveX コンポーネントが必要で、自作は難しいのでしょうか。

lord_chan
質問者

お礼

ちがった、VB++じゃなくてVC++ですね(^^;)

lord_chan
質問者

補足

ありがとうございます。どうやらVC++でライブラリを作ってるようですね。VB++ならどのような関数を(たぶんAPI)使えばできるのでしょうか?

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 Outlookなら、参照設定をしてOutlookオブジェクトを利用すれば出来ます。 以下を参考にして下さい。 http://www.h4.dion.ne.jp/~asaip/olapp.htm#bk7 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/modcore/html/deovrunderstandingapplicationnamespaceobjects.asp

参考URL:
http://www.h4.dion.ne.jp/~asaip/olapp.htm#bk7
lord_chan
質問者

補足

ありがとうございます。参考になりました。

関連するQ&A

  • VB2005でメール送信について

    まだ、始めて間もないのですが質問させてください。 VB2005でメール送信プログラムを作成中です。 SMTPサーバ名、port番号、アカウント、パスワード、送信者等を設定ファイルから読み込み、送信テストを行いました。 通常(25)では、上手くいったのですが、Port番号が465の時は上手くいきません。 ライブラリを取込むようにしようと思っているのですが、SMTPサーバが25しかあいてないので、テストもできません。 無料のメールサーバで465が使用可能なところはどこかありませんか? また、SMTP認証(SMTP over SSL)、SSL使用のメール送信プログラム作成において、気をつけることなどあったらご教授願います。 windows xpです。

  • VBでメール送信

    VBでメールを送信したいのですが、どうすればいいか見当もつきません。 できれば、添付ファイルを送信できるようにしたいのです。 だれか教えてください。

  • VB.NETでメールを送信をしたい

    ツールを作っているんですが、バージョン情報のところに、メールアドレスを記述したいのですが、そこをクリックすると持っているメール送信ツールを表示できるようにしたいのです。 クリックイベントを取得して、OutlookExplessを指定するって方法はできそうなのですが、これだとOE以外のメール使っている人ができないと思うのですが、他に方法はないでしょうか? あと、デフォルトで ・メール送信先 ・タイトル ・本文(テンプレートのため) を記入しておくようにしたいのですが、やり方をおしえてくださいー

  • VBでメール送信ソフトを作成

    こんにちわ。 タイトルの通りなんですが、VBで簡易的なメール送信 ソフトを作ろうと考えています。 (テキストボックスに入力された文字を送信) VBでメールの送信(受信)を行うには、Winsockを使用 すればいいというのは分かりましたが、具体的な使用 方法がわかりません。 まだ入門書片手にVBの勉強をしている者なので、細か く解説してくれる方、また詳細な説明のあるサイト を知っている方がいらっしゃいましたらご回答ください。 よろしくお願いします。

  • メールが送信できません

    メールを送信すると「電子メールサーバーが見つかりません。アカウントのプロパティでサーバー情報を確認して下さい」と表示されてしまいます。コントロールパネルで電子メールアカウントの画面を出してみましたがトラブルと表示されるので、マイクロソフトにエラーメッセージを送信しておきました。何がいけないのか良くわかりません。 どなたか教えて下さい。

  • メールが送信できません

    WindowsXP+OE6を使用しています。 全部が全部というわけではないのですが、時々、メールを返信(もしくは転送)しようとすると 「送信者が指定されていません。ニュースアカウントの構成を確認して下さい」というメッセージが出て メールが送信できません。 ニュースアカウントの設定はしていません。 何が原因なのか判らず、困っています。 どなたか原因と対処方法をご存知の方いらっしゃいませんか?

  • VB.NETのユーザコントロール

    VB6.0のユーザコントロールはコンパイルすると OCXになり、レジストリに登録しないと使用できません。 VB.NETでもユーザコントロールの作成は可能だと思いますが、これはOCXではないのですよね? で、やはりレジストリに登録する必要があるのでしょうか? 単なるプロジェクトへのファイル追加だけで使えるようになればいいんですけどねー

  • メール送信 MAPIMessages.Send (False)での確認画面を出さない方法。

    こんにちは。 VBでのメール送信について伺います。 MAPISessionコントロールと MAPIMessagesコントロールを 利用して複数件のメールを送信しています。 MAPIMessages1.Send (False)にて メール送信を実行していますが、 送信可否の確認ウインドウが出てしまいます。 複数件のメールのため、これを取り除こうと いろいろと試行錯誤していますが、 上手く行きません。 表示しない方法をご存知の方 宜しくお願い致します。

  • メール送信

    Windows2000でVB6.0のSP5を使用していますが、メールの自動送信を行いたいのですが、VBだけではできないのでしょうか? できる事ならあまり環境に依存したくないので、ActiveXやAPI等の使用は避けたいのですが、それしか方法がないのでしょうか? メールは新規メールが起動するのではなく、完全にプログラムからの自動送信を考えています。 つまり、データベース等のデータを使用してメール送信を全自動で行いたいのです。 どうぞ、よろしくお願いします。

  • VB6のユーザーコントロールがメモリを食う

    VB6でユーザーコントロールを作りまして、OCXにしてそれを、ある画面に数十個張り付けているのですが、メモリをたくさん食います。タスクマネージャで見ると50Mを超え、エラーがでるようです。 画面に張り付けたユーザーコントロールですが、画面を消してもメモリはあまり減らず食ったままになります。画面はちゃんとNothingしているのですが、ユーザーコントロールに使われているメモリは開放されないようです。次のことをご教授願えればおねがいいたします。 1)ユーザーコントロールOCXを動的に画面に張り付ける方法 2)デザイン画面で張り付けたユーザーコントロールOCXのメモリを開放する方法 3)メモリをあまり消費しないユーザーコントロールの作り方 その他なにかよいアドバイスがあればお願いいたします。

専門家に質問してみよう