bsendm

2000.03.20 初出
2000.11.15 更新

bsendmは、コマンドラインから起動する高速メール配信プログラムです。 Win32 のBSENDM.EXE をLinux 用に書き直したものです。

特徴

リリースノート

リリース 説明
1.0 2000/03/20 : 初公開。
1.0a 2000/10/29 : 宛先ファイルによる大量送信でbsendm が固まる不具合修正。送信間隔を指定する機能追加。
1.1 2000/11/03 : qmail-queue指定のとき、デフォルトの送信間隔を0にしました。
1.2 2000/11/15 : インタラクテブオプション。1つのSMTPコネクションですべて送信を行うように修正 (BSendMail2関数コール)。

インストール

まず、Bsmtp ライブラリ 1.2をインストールします。 bsendm のコードも Bsmtp tarball に一緒に付いてきます。 Bsmtp ライブラリ 1.2のインストール方法は、 こちら。
Bsmtp ライブラリ 1.2のディレクトリ上(bsmtp-1.2)で次のようにコマンドを実行します。 インストールは、数秒くらいで終わるでしょう。
デフォルトでは bsendm は、/usr/local/binにコピーされます。

$ make bsendm                      bsendm.cc をコンパイル
$ su                               エラーが出なかったら root ユーザになります
# make bsendm-install              /usr/local/bin に bsendm をコピー

使い方

  bsendm [-i] [-c] [-v] [-s] [-e] [-t] [パラメータファイル]


  -i オプション
  インタラクテブオプション。上記のように画面に進捗状況を表示します。

  -c オプション
  1通ごとに毎回SMTPコネクションを張ります。ローカルでこれを指定すると
   inetd に負荷がかかりサービスを10分間停止することがあります。
   qmail-queueを使う場合は、無視されます。

  -v オプション
  ログを標準出力に書き込みます。


  -s オプション
  -s オプションは、本文中の 文字列 "%1" を宛先ファイルで
  指定した置換え文字列で置換えます。
  宛先別に本文の一部を変更したいときに便利です。
  "%1" を送信するには "%%1" と指定します。
  置換え文字の中にはタブや改行は含むことはできません。
  本文中で%2を使うとその位置にテキストファイルの
  内容を挿入できます。タブや改行を含んだ大量のデータを
  置換えるには 本文中で %2 を指定します。

  -sオプションを使ったときの宛先ファイルの内容
  1行目 宛先メールアドレス名[TAB]置換え文字[TAB]置換えファイル名
  2行目 宛先メールアドレス名[TAB]置換え文字[TAB]置換えファイル名


  置換え文字やファイル名を省略すると 本文中の%1 や %2 は削除
  されます。
  -s オプションを指定するときは本文中に %1 や %2 が
  含まれていないか確認します。含まれているときは、
  %%1 や %%2 に変更してください。
  置換するファイルの内容には %1や%2は含まれていてもかまいません。


  -e オプション
  ログファイル書込み時にログファイルをロックします。
  qmail-command などで同時にログファイルを使う場合は指定します。


  -t オプション
  実際に送信せずに送信内容を確認したいときに使います。
  送信内容は、ログファイルに書きこまれます。置き換え文字のテストに便利です。

  パラメータファイル
  パラメータファイルの内容は、次のように指定します。
  1行目  ログファイル名 (追加書きこみ。先頭に">"を付けると新規作成モード)[TAB]送信結果通知メールID
          /dev/null と指定するとログを書きません。
          -e オプションでログファイルを書込み時にロックします。
  2行目  SMTPサーバIPアドレス名
          ローカルのqmail を使う場合は、qmail-queueの実行バイナリのフルパスを指定します。
          IPアドレスを指定します。サーバ名を指定するとコネクトに失敗しますので注意。
  3行目  宛先メールアドレス名(複数の場合、タブで区切る)
          または 宛先ファイル名、または BCCファイル名
          ${環境変数}の形式で環境変数を参照できます。qmail-command で便利。
          例: ${SENDER}
  4行目  送信元メールアドレス名
  5行目  件名
  6行目  添付ファイル名(複数の場合、タブで区切る)
  7行目以降 本文


  パラメータファイル名を省略すると標準入力からパラメータを読み込みます。
  パラメータファイルに日本語を含む場合は、EUC コードのみを
  使ってください。
  パラメータファイル内の本文以外で1桁目が '#'の行は、
  コメントとして無視されます。
  送信結果をメールで通知するには、ログファイル名の後にタブで区切ってメールID を
 指定します。

  件名や添付ファイルを省略するには改行のみ指定します。

  宛先メールアドレス名の先頭が'.'か'/'の場合は、宛先ファイルとみなします。
  宛先ファイルを1行ずつ読んで宛先を取り出します。
  -sオプションを使うときは、宛先ファイルを使います。

  宛先ファイル
  宛先ファイルの内容は、次のように指定します。1桁目が '#'の行は、
  コメントとして無視されます。この宛先メールアドレスごとにメールサーバと接続します。
  1行目  宛先メールアドレス名1
  2行目  宛先メールアドレス名2
  3行目  宛先メールアドレス名3
  n行目  宛先メールアドレス名n

  BCCファイルモード
  BCCで大量にメールを送信するには、宛先メールアドレスの代わりに 
  BCCファイルを指定できます。宛先ファイルと違い、メールサーバとの接続は、
  1回なので高速です。このとき、To: ヘッダは、最初に @ を指定すると
  任意の文字が To: ヘッダに使用できます。
  hoge@hege.com [tab] >#bcc ./bcc.txt
  @BASP21-MLIST [tab] >#bcc ./bcc.txt

  送信単位指定
  -c オプションを使わない限り、1度のSMTPコネクションで全てのメールを連続配信します。
  メールサーバによっては、長時間のコネクションを嫌うかもしれません。
  これを複数のSMTPコネクションに分割したい場合は、次のようにします。
  SMTPサーバIPアドレス名[tab]コネクション間隔時間[tab]送信単位
  例:500通ごとに10秒置いてSMTPコネクションを張る場合は:
  127.0.0.1[tab]10[tab]500

起動例:
インタラクティブモードで起動。
bsendm -i p1.txt



  

パラメータファイルのサンプル

●例1: mailaddr.txt ファイルを読み、宛先ごとにqmail-queueを使って高速送信します。 ~/log.txt /var/qmail/bin/qmail-queue ~/mailaddr.txt ほげ<hoge@hoge.com> subject こんにちは、 ●例2: mailaddr.txt ファイルを読み、宛先ごとに送信します。 メールサーバとのSMTPコネクションは、1000通ごとに60 秒間隔で行います。 ~/log.txt 127.0.0.1 60 1000 ~/mailaddr.txt ほげ<hoge@hoge.com> subject こんにちは、 ●例3: bcc.txt ファイルを読み、BCCとして一括送信します。To: ヘッダは、BASP21-USER。 ~/log.txt 127.0.0.1 @BASP21-USER [tab] >#bcc ~/bcc.txt 管理人<hoge@hoge.com> subject こんにちは、 ●例4: qmail-command を使ってメールが到着したらメールを送信者に送信します。 ~/log.txt 127.0.0.1 ${SENDER} @BASP21-USER [tab] >#bcc ~/bcc.txt 管理人<hoge@hoge.com> subject こんにちは、 ~alias/.qmail-ext ファイルに次のように | コマンドを指定します。 |/usr/local/bin/bsendm -e ~alias/para.txt

FAQ


babaqフリーソフトのご使用上の注意

●プログラムを使って発生した損害に関しては、一切の責任を負いません。
●使用、配布に制限はありません。自由にお使いください。
●動作の保証はありません。
●動作を確認したOSは、redhat linux 6.1 日本語版のみです。

Home


Copyright 2000 Tatsuo Baba,All rights reserved.