ARAGOからの email自動配信プログラム


同じ内容のメイルを、複数のアドレスに自動的に送信するような業務はよくありますが、 ARAGOの機能で簡単に実現できます。

もちろんプログラムで、いくつかの内容のメイルをあて先によって変えたり、本文にデータベースから取り出した、会社名や担当者名を書き換えたりすることが 出来ます。 使われている方はずいぶん前からお使いになっているようですが、 メイルなんて面倒くさいと思っている方に簡単にARAGOで出来る見本を紹 介します。

必要なDBFファイルは、送った先を記録するmailout.dbfと送る必要のあるあて先のaddrmst.DBFです。 それぞれに条件項目や、配信 日の記録、などを持たすことにより、より便利なものとなるでしょう。 MAILADRフィールドはどちらのDBFにもあります。 送り先のメイルアドレス のフィールドです。

プログラムではメイルを定義するDEFINE MAILとメイルを送り出すSENDMAIL()を使っています。

use addrmst     &&住所DBF
select 2
use mailout inde mailadr     &&送信したアドレスのDBF
select 1

DO WHILE .NOT. EOF()

    IF SEEK(MAILADR, "mailout")    &&mailoutにアドレスがあるということは、もう送信済み
        ? "found"     &&画面に送信済みのための表示
    else
        &&ここでメイルの定義
        DEFINE SENDMAIL m1 ;
        SMTP "mail.xyz.com" ;     &&メイルサーバーを指定
        FROM "abc@xyz.com" ; 
        TO MAILADR ;    &&現在のレコードの相手先メイルアドレスを指定
        SUBJECT "ご案内" ;
        MESSAGE FILE aaa.txt;    &&送り出すメイル本文を指定
        REPLY TO "abc@xyz.com"

        ? SENDMAIL("m1")    &&ここでメイルを送る、結果が画面に表示される
        &&ここで戻り値をみて、成功したら次のdbfにアドレスを保存する
        &&ここは簡単に書いてあるので、失敗しても保存する。
        sele 2
        append blank

        replace mailadr with regist->mailadr &&送信したアドレスの保存
        sele 1
    endif
 
    SKIP
ENDDO

このプログラムはARAGO for WindowsでもARAGO for Internetでも動きます。
ただし ?の部分ははずしてください。 SENDMAIL()の戻り値をとって、送信が成功したかどうかを確認してください。

Windowsで日常的に使う時には、それなりの画面を作成してください。

メイルアドレスは頻繁に変更されているために、一般の人に使うときには大量のDelivery Failure noticeが戻ります。
困ったことにこれらのreturnメイルの本文はそれぞれ勝手なフォーマットになっています。 
自動でこれらのreturnメイルの処理を書くとなると少々面倒なことになります。 標準フォーマットがあるといいですね。

必ずプログラムのチェックには、あ て先を自社内で差し障りないアドレスでチェックしてください。 

このプログラムの実行スピードは、mailサーバーのスピードに依存します。 外部のサーバーで大量のメイルを送信すると、 一部のサーバーでは連続送信 を禁止しているものがあります。 また受信側サーバーでも同一の送信者からの連続した大量のメイルを禁止しているところもあります。

いまどきメイルサーバーを立ち上げるのはそれほどの手間も時間もかかりません。 できるだけ自社サーバーをお使いになることをお勧めします。