teratermマクロ:メール送信ツール

久しぶりにteratermマクロでツールを作ってみた。

teratermマクロは前の会社でつまらない雑用をやっつけるために覚えたものの、
意外と便利なことに気づき、それ以来お気に入りのおもちゃです。


今回作ったのはメール送信するマクロ。


おかしなメールを検証用のメールボックスに流し込む時なんかに便利。
環境設定部分を変更すればいろんな環境で動くかなと思います。
ちなみに大量のメール送信には明らかに向きません。(だって遅いし…)


ちなみにteratermマクロというのはteratermに同梱されているttpmacro.exeです。
※自分はteraterm proを使っていますが、teratermについてるマクロはファイル名が少し違います。

詳細はteratermをインストールするとついてくるヘルプ↓を見ましょう。

C:\Program Files\teraterm\macroj.hlp
  • mail_macro.ttl

設定ファイルの説明

    • ■CONF_FILE   teratermの設定ファイル。ローカルエコー=ON 送信時の改行コードCRLFの設定は必須。送信文字コードはJIS
    • ■MAIL_FILE   送信するメールデータ。 マクロの下にサンプルを付けときました。ちなみに置いた場所はマクロと同じディレクトリ。
;**************
;*  環境設定  *
;**************
SMTP_HOST = 'hogehoge.com'
SMTP_PORT = '25'
FROM_ADDR = 'user@hogehoge.com'
RCPT_ADDR = 'user@hogehoge.com'
CONF_FILE = 'C:\\Program Files\\teraterm\\ttermmacro.ini'
MAIL_FILE = 'mail.txt'

;**************
;*  接続処理  *
;**************
strconcat CONNECT_STR SMTP_HOST
strconcat CONNECT_STR ':'
strconcat CONNECT_STR SMTP_PORT
strconcat CONNECT_STR ' /T=0'
strconcat CONNECT_STR ' /F="'
strconcat CONNECT_STR CONF_FILE
strconcat CONNECT_STR '" /nossh'

connect CONNECT_STR
wait '220'

sendln 'EHLO ' SMTP_HOST
wait  '250 '

sendln 'MAIL FROM: <' FROM_ADDR '>'
wait '250'

sendln 'RCPT TO: <' RCPT_ADDR '>'
wait '250'

;**************
;*  本文送信  *
;**************

sendln 'DATA'
wait '354'

fileopen fhandle MAIL_FILE 0
:loop	
filereadln fhandle line
if result goto fclose	
sendln line
goto loop
:fclose	
fileclose fhandle

yesnobox 'このメッセージを送信して良いですか?' '確認'
if result goto doSend

disconnect
exit


:doSend
sendln "."
wait '250'

sendln'QUIT'
wait '221'
exit

  • mail.txt
From: user@hogehoge.com
To: user2@hogehoge.com
Subject: Test Mail!!
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

テストメール