【vba+pop3開発】Accessでpop3メール受信クライアント作り

連携出来ない僕のFileMakerGO「なんちゃってハンディーターミナル」アプリと基幹業務システム。

FileMakerGOから受注データをメール送信。
そのメールを受信し、添付ファイルを取出、改行コードCRをCRLFに置換、そして指定フォルダへコピーするにはどうすれば・・・・・

取りあえずMS-Accessでメール受信機能を作れないか検討。
VBAから実行できそうなコマンドラインのpop3メール受信クライアントをGoogle検索。

日本語検索では見つからず、英語検索してようやくヒット1件「popclient.exe」!(意外と少なかったです)

[Command Line Pop Client (Free)–CODEODE]

「c:pop3」フォルダを作りダウンロードファイルを解凍。

pop3受信サーバにハンディーターミナルアプリ専用メールアドレスを作り、そのサーバ情報を設定用XMLファイルに保存。

実行ファイル:c:pop3popclient.exe
設定ファイル:c:pop3fmGOconfig.xml
メール保存先:c:pop3mail
添付ファイル保存先:c:pop3attachFiles
VBAで処理後のファイル保存先:c:pop3importedFiles

さて、受信できるかな?
FileMakerGOからテスト受注データを送信。
設定ファイル名を引数にしてpopclient.exeをDOS窓で実行!

c:pop3popclient.exe -configfile fmGOconfig.xml

おおおーーー受信した、すげー便利!

添付ファイル保存先「c:pop3attachFiles」にファイルが2つ出来ました。
2つともファイル名がユニーク(=唯一無二)になるように意味を持たない長い文字列が末尾に付加されている。

1つはFileMakerGOで生成した受注明細の固定長ファイル。
もうひとつは「iPodから送信」と書かれただけのテキストファイル。
VBAから実行したpopクライアントが受信したメールの添付ファイル

受注ファイル名の先頭6文字の「FMGoHT」を探し、改名しながら処理フォルダーへ移動するVBAを考えてみました。

概要
1:「c:pop3attachFiles」内をdirして先頭6文字が「FMGoHT」のファイルを探す
2:そのファイルを処理しやすいtxt拡張子付ファイル名に改名
3:処理フォルダー「C:pop3importedFiles」へ移動する

後は、nkf.exeで改行コードを変換しサーバへ移動すれば完成。

’popclient.exeを起動するバッチファイル
Shell "c:pop3
eceive_fmGOmail.bat"

Const PathSource As String = "C:pop3attachFiles"
Const PathDistin As String = "C:pop3importedFiles"

Dim i As Long
Dim myDir As String
Dim myFile As String
Dim mySourceFiles As String
Dim myDistinFiles As String

myDir = Dir(PathSource & "*")

Do While myDir <> ""
    
    i = i + 1
    If Left(myDir, 6) = "FMGoHT" Then

        myFile = Left(myDir, 23)
        mySourceFiles = PathSource & myDir
        myDistinFiles = PathDistin & myFile & ".txt"
        Name mySourceFiles As myDistinFiles

ここで改行コードをCRからCRLFに変換
サーバ上の指定フォルダーへ移動

    End If
    
    myDir = Dir
   
Loop

kill PathSource & "*"

MsgBox "全部で" & i & "個のファイルをインポートしました。"

このスクリプトを完成させればFileMakerGOハンディーターミナルアプリと基幹業務サーバの連携が出来るようになるよな・・・
でも、出来ればFileMakerGOが改行コードCRLFのファイルが作れ、FTPクライアント機能があれば便利なんですけどね。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA