PsMailLib マニュアル 




 1.45 版  2003 /06 /11  

 株式会社 パワーソフト 


1.概略

1.1).概要

PsMailLib(ピーエス・メール・リブと呼んでいます)は、インターネットのメールを取り扱う関数をコンパクトにまとめたライブラリです。

SMTP/POP3 に対応しています。
添付ファイルの送受信ができます(BASE64サポート)。
HTMLメールを送受信できます。

使用方法のサンプルとして、コンソールプログラム、Win32 SDK、VB6.0、VBA で作成したソース・プログラムも添付しています。




1.2).動作環境

OS Win32系
メールサーバ SMTP サーバ / POP サーバ
供給方式 DLL で供給。
必要な開発キッド 実際に動作させるためには、Visual-C/C++ などのコンパイラ とか Visual-Basic 4.0 以上とかが必要です。
本ソフトは、VC.NET で開発しています。



1.3).利用上の留意点

このライブラリは無料です。
このライブラリ本体の著作権は、株)パワーソフトが所有します。
このライブラリをリンクした有償、無償のソフトの著作権について、弊社は一切主張いたしません。
このライブラリをリンクした有償、無償のソフトを公開する場合、そのマニュアルなどに弊社のライブラリを利用した旨の記述を入れて下さい。また連絡いただけると幸いです。
このライブラリを他へのリンク、または掲載等は事前または事後に連絡をください。
このライブラリを使用することによって発生した不具合ならびに損害等について、弊社は一切の責任をおいません。
このライブラリのサポートは、メールで行っています。
    ・氏名、住所、連絡先の記入のないメール(迷惑メール作成かも)
    ・言語に関するものと思われる問合せ
    ・「作ってください」など実際のコードの記述の要求
    ・「教えてください」となっているが実際にはデバッグ要求と思えるもの
    には返答できません。



1.4).ダウンロード
このライブラリは、下記からダウンロードできます。

1.5).マニュアル
このライブラリのマニュアルは、ダウンロードしたファイルにHTMLファイル(Manディレクトリ)として同送されています。また参考用に下記にも用意しています。




2.インストールとアンインストール

2.1).インストール
1.ダウンロードしたファイルを実行してください。

  ダウンロードしたファイルを実行して下さい。
ダウンロードしたファイルは、ディフォルトならば zPsMailLib145.exe というファイル名です。
このファイルは、自己解凍型のExeで、解凍すると以下のようなファイルが出現します。
( 5 はマニュアル。 6 〜 16 はサンプルソースです。)
 
PsMailLib.h Cでコンパイルするときに必要なヘッダ・ファイルです。
PsMailD.VB VBでビルドするときに必要なファイルです。
Lib\PsMailD.lib DLLをリンクするときに必要なライブラリ・ファイルです。
Lib\PsMailD.dll DLL本体です。
Man\ HTML形式の解説書のディレクトリです。
PsMailLib.htm をクリックして使用してください。
フレームを使用しています。
Sample\VC\Checker_CCon コンソール系の簡単なメールチェッカーのプロジェクトです。
VC.NET で作成。
Sample\VC\Checker_CSdk Win32SDK系の簡単なメールチェッカーのプロジェクトです。
VC.NET で作成。
Sample\VC\Recieve_CCon コンソール系の簡単な受信のサンプルのプロジェクトです。
VC.NET で作成。
Sample\VC\Recieve_CSdk Win32SDK系の簡単な受信のサンプルのプロジェクトです。
VC.NET で作成。
10Sample\VC\RecieveHtml_CConコンソール系の簡単なHTMLメールの受信のサンプルのプロジェクトです。
VC.NET で作成。
11Sample\VC\Send_CCon コンソール系の簡単な送信のサンプルのプロジェクトです。
VC.NET で作成。
12Sample\VC\Send_CSdk Win32SDK系の簡単な送信のサンプルのプロジェクトです。
VC.NET で作成。
13Sample\VB\Send_VB VB系の簡単な送信のサンプルのプロジェクトです。
VB.NET で作成。
14Sample\VB\Send_VB VB系の簡単な送信のサンプルのプロジェクトです。
VB.NET で作成。
15Sample\Excel\Send EXCEL VBA で作成した送信のサンプルです。
16Sample\Excel\SendAll EXCEL VBA で作成した同時一斉送信のサンプルです。

  2.開発に必要なコピーを行う。
  メーラのプログラムをC/C++で作成するために、上記のうち以下のファイルを必要な場所にコピーします。
 
PsMailLib.h
  VCを利用して開発するときに必要なファイルです。
コンパイルするときに必要なヘッダ・ファイルですので実際にプログラムを作成するディレクトリか、もしくは、VisualStadioのインクルードディレクトリ
  "C:\Program Files\Microsoft Visual Studio\VC98\Include"
にコピーしてください。
PsMailD.VB
  VB を利用して開発するときに必要なファイルです。 実際にプログラムを作成するディレクトリにコピーしてください
Lib\PsMailD.lib
  リンクするときに必要なライブラリファイルですので実際にプログラムを作成しリンク可能なディレクトリ(そのプロジェクトからの相対パスで設定する)か、もしくは、VisualStadioのライブラリディレクトリ
  "C:\Program Files\Microsoft Visual Studio\VC98\Lib"
にコピーしてください。
Lib\PsMailD.dll
  システム・ディレクトリ/ウィンドウズ・ディレクトリなどDLLの動作するディレクトリか、.EXEと同じディレクトリにコピーしてください。なおディフォルトのシステム・ディレクトリは
  \WinNT\System(WinNT) \Windows\System(Win95)
ウィンドウズ・ディレクトリは
  \WinNT(WinNT) \Windows(Win95)
となっています。

2.2).アンインストール
アンインストールは、上記のファイルを削除して終了です。

    このライブラリでは、上記のファイルのみに依存して、レジストリ、その他のファイルは使用していません。インスト−ルしたディレクトリとファイルを消去するとアンインストールの終了です。



3.実際の使用

3.1).プログラム作成上の注意
このライブラリでは、ウィンドウズのソケットライブラリ Winsock を使用しています。このライブラリを使用してプログラムを作成する場合は、WSOCK32.lib をリンクしてください。
3.2).改訂記録


03/06/11 Ver.1.45
「Direct Email Easy」と呼ばれるメーラーが吐き出すテキストで
日本語に変換できないものがあった。
マイナーなメーラーだと思うが対処した。
03/05/23 Ver.1.44
NTTドコモのFOMA のある機種でiShot の画像が取得できない。
たぶん、その機種のメーラーのバグだと思いますが、対処。
03/05/06 Ver.1.43 (バグ・フィックス)
ToおよびCcが多いと受信者、関係者が取得できなくなるバグをフィックス。
03/02/02 Ver.1.42 (バグ・フィックス)
HTMLメールを送り Netscape 7.0で見ると Jpegファイル が表示しない。(Outlook Express や Becky! はOK)
上記バグをフィックス。
02/11/07 Ver.1.41-c(未公開版) (バグ・フィックス)
長いファイル名をもつファイルを添付すると、ファイル名が継続行で二行にまたがるときがある。このとき、改行でファイル名が切れてしまう。
関数 PMR_FindFirstFile PMR_FindNextFile で現れる。
関数 Pmr_OpenMailHeadSub を修正。
02/11/05 Ver.1.41-b(未公開版) (バグ・フィックス)
富士通グループのメーラ TsWorks 固有のバグ
富士通グループのメーラ TsWorks では、エンコード方式の指定がないとき
BIT7 で対応するようになっている。(先方には未確認、仕様だと思う)
PsMailLib では、エンコード方式の指定がないときは、エラーにしているので
本文すら取得できないようになる。
BIT7,Printable,Base64 以外は、Bit7 でエンコードするよう対処した。
02/10/23 Ver.1.41-b(未公開版) (バグ・フィックス)
添付ファイル名に空白(半角スペース)が入ったメールを受信すると、添付ファイル名の空白以降の文字がカットされてしまう。
ファイル名は、ダブルコーテーションで括るのが決まりだが、そうでないメーラがありました。
この状況に対処。
02/10/03 Ver.1.41-a(未公開版) (機能拡張)
拾うべきエラーコードを拡大し、以下のSMTPのエラーも拾えるようにした。
421 Service not available,closing transmission channel
450 Requested mail action not taken: mailbox unavailable
451 Requested action aborted: local error in processing
452 Requested action not taken: insufficient system storage
500 Syntax error, command unrecognized
501 Syntax error in parameters or arguments
502 Command not implemented
503 Bad sequence of commands
504 Command parameter not implemented
550 Requested action not taken: mailbox unavailable
551 User not local; please try
552 Requested mail action aborted: exceeded storage allocation
553 Requested action not taken: mailbox name not allowed
554 Transaction failed
(rfc2821 より)
これに伴いエラーコードの PMI_GetErrorName のバッファサイズ(pszNameLong)を 52 バイト から 64バイトに拡張する必要があります。利用者は注意してください。
02/08/01 Ver.1.40
スタティック・ライブラリの供給を停止し、DLLの供給のみとした。
開発環境をVS.NET に変更し、再構築した。
  上記に伴って PsMailD.BAS は PsMailD.VB に変更した。
半角カナを全角カナに自動変換する機能を付加した。
受信のディフォルト・メールボックスのバグを修正した。
02/05/16 Ver.1.31
Ver 1.30 時に VB用のサンプルの psMail.Bas を修正していなかったのを修正した。
VBからDLL経由でアクセスできない関数があったのを修正した。
02/05/16 Ver.1.30
以前のバージョンのHTMLメールへの対応が中途半端だったので、関数を追加して、そこそこHTMLメールへの対応を行えるようにした。
 Pms_SetDelete メール送信終了・編集ファイルを削除する設定
 Pms_SetTextHtml HTML本文の設定
 Pms_SetTextHtmlFile HTML本文のファイルの設定
 Pms_AddHtmlFile HTML用画像ファイルの追加
 Pmr_GetTextAtr 本文の属性取得
 Pmr_GetTextHtml HTML本文の取得
 Pmr_FindFirstHtmlFile 最初のHTML関連ファイル名の取得
 Pmr_FindNextHtmlFile 次のHTML関連ファイル名の取得
 Pmr_ReplaceHtmlFile HTML関連ファイル名の置換
02/03/18 Ver.1.20
HTMLメールのとき、通常は、text/plane が、text/plane が無くて text/html があるときは text/html が取得できるよう修正した。
サンプル Send_Excel_All を追加しました。
マニュアルに「VB でDLLを利用する皆さんへの注意」を追加しました。
02/02/25 Ver.1.19
関数 Pms_AddBCC を追加。マニュアルを修正しました。
01/11/27 Ver.1.18
メールチェッカーのサンプルをさらに追加しました。
誤った受信用のディレクトリの指定で処理が中止するバグをフィックスしました。
01/11/14 Ver.1.17
メールチェッカーのサンプルを追加し、サンプルのディレクトリ構成を変更しました。
01/08/30 Ver.1.16
関数 Pmr_RetrieveCheck のエラーチェックを強化した。
01/08/10 Ver.1.15
PsMailD.dll に PMR_RetrieveCount が含まれていないミスの解消。
01/08/01 Ver.1.14
「変換できない漢字がある」バグ・フィックス
01/05/15 Ver.1.13
「CC の返信文でエラーが発生する場合がある」バグ・フィックス
01/04/05 Ver.1.12
添付ファイルのデコードにQuate-Printable をサポート
Pmr_FindNextFile のバグを修正
00/09/18 Ver.1.11
マニュアルの記述ミスを1個所訂正(00/08/12 nao 様 指摘)
VBからDLLを呼び出す為のファイルPsMaileD.Bas のバグを訂正(00/09/14 安立 様 指摘)
00/07/30 Ver.1.10
マニュアルの記述ミスを6個所訂正(00/07/23 nao 様 指摘)
マニュアルにエラーの対処部分を追加。
送信添付ファイルのバックアップの改行バグを訂正(00/07/27 Motoyama 様 指摘)
要望のあった、マルチスレッドのライブラリも追加。NTのサービスからもコールできます。このためライブラリの格納構成を変更しました。
00/07/07 Ver.1.02
添付ファイルのバグフィックス(00/07/05 T.Motoyama 様 指摘)
誤ったメールボックスのディレクトリを渡してもエラーにならないバグ、フィックス。
マニュアルの誤字訂正(2個所)
マニュアル一部の追加
00/05/07 Ver.1.01
関数 Pmr_RetrieveCount の追加
マニュアルにリンクエラーの対処方法を記述
00/04/02 Ver.1.00
ライブラリ公開版として作成