ずっと前からやりたかった、Cycling'74 Max8でメールを送る方法です。
目的は、Maxで作成したパッチが受け取ったシステムのログや稼働状況をテキストファイルにパッケージしてそれを添付してメールする事です。
Maxでメールを送る手法は沢山ありますが、今回はNode.jsのNodemailerを使用しました。
参考にしたのは下記です。
こちらはパッチごと掲載されています。サーバ名やユーザ名を変数で置き換えている上記のパッチではこちらの環境ではメール送信できず、一部書き換えています。(直に指定することにした。)
こちらはNodemailerの説明。添付ファイルの送信の際に大変参考になりました。
今回使用する参考パッチはこちらです。添付ファイルの送信を抜いたメール送信するだけのパッチです。
パッチを展開した状態
最初にパッチを開いた場合は、node.scriptがインストールされていない状態の為、デバッグツールが赤い状態です。
手順としてはindex.jsを適宜書き換え、npmをインストールするだけです。
node.scriptがインストールされいない状態。インストールを行うと「node_modules」フォルダが生成される。Webサーバに常に最新版のスクリプトを取得しに行く仕組みのNode.jsはなかなか面白い。一度ダウンロードすればローカル環境でも稼働可能
index.jsはパッチの中からも編集が可能。メールサーバ、送信ポート、ユーザ名、パスワードを書き換えて使用する
index.jsの編集が終わったら、インターネット接続環境下でscript npm installをプッシュする。インストール中はデバッグツールが青に変わる
node scriptデバッグツールが緑になったらインストール完了
インストール手順は上記です。
この後、SEND MAILをクリックするとメールが送信されます。なんて簡単なんだ・・・・
メール受信した状態
添付ファイルを行う場合は、
//attachments: [ // 添付ファイル
//{
//filename: log,
//path: log,
//},
//],
こちらをコメントアウトを削除し、logの変数に対してファイルの絶対パスを指定してください。
筆者はMaxコンソールをUDPロガーとして扱いtextモジュールでテキストファイル化、その後単体のテキストファイルとして書き出しを行い、それをメールで添付するパッチを組んでいます。これらはプロジェクト化した後、アプリケーションとして書き出しを行うと、Node.jsを内包した状態で単独.exeとして別PCで稼働させることが可能です。
拍子抜けするほどうまく行ってしまい、3年前にできなかった事がこんなにも簡単に・・・と驚きました・・・。進歩したんだぞ。
本記事がどなたかの参考になれば幸いです。