メールを送信する

Pocket

今回はメール送信についてプログラミングしたいと思います。EasyLanguageで作ったプログラムから直接メールできればいいのですが、何かの条件が発動した場合のアラート的な使い方しかできなさそうです。なので、他のプログラムも組み合わせつつ、なるべく簡単な方法でメール送信を実装しようと思います。


メールを送信する用途としては、取引の状況をメールで送信して携帯などから確認できるようにすることを想定しています。以下のような仕様と想定でプログラムを作成します。

  1. 自動取引プログラムはTradeStationから起動されて24時間動作する状態
  2. 自動取引プログラムが取引状況をファイルに出力する(日付+時間と取引状況をカンマつなぎ)
  3. 当日取引終了後にスクリプトがファイルを見て当日分を編集してメールを送信する

では自動取引プログラムの方を作成していきます。メール送信のテストをしたいだけなので、取引部分は書きません。TradeStationを起動してEasyLanguageを起動してください。以下の操作をした後にその下のコードを入力してください。5分ごとにファイルを開いて取引状況を書き込みます。

ファイル(F) → 新規作成(N) → トレーディングアプリケーション(T) → 名前(N):$mail_test → ツールボックスのTimeのTimerをダブルクリック → Timer1のプロパティ変更(Interval:300000(ミリ秒),Enable:True) → 雷のElapsedに”Timer1_Elapsed”でenter

タイマー設定後

テストしやすさを優先して5分毎に出力していますが、実際の取引のプログラムでは時間間隔は調整する必要があります。”StreamWrite.Create”の第2引数は上書きするかどうかの指定です。第2引数がない場合は毎回ファイルが作成されて1行だけが新規で書き込まれます。実行(F3->F5)しておいてください。メール送信側のプログラムを書きます。

メール送信側のプログラムは言語はなんでもいいのですが、Windows端末で手軽に実行するのであればVBScript(WSH)がいいと思います。メール送信のプログラムを書く場合の注意ですが、メール送信させるには誰かがメールリレー(SMTP)をする必要があります。自前でやってもいいですし、他のサービスを使ってもいいのですが、gmailなどのフリーメールが手軽です。手軽なんですがアカウントにログインするパスワードをスクリプトに直書きする必要があります。以下のようなプログラムにしました。アカウントのところは書き換えてください。タスク登録して一定間隔で起動されて当日分のログをメール送信することを想定しています。

このプログラムをタスク登録して、取引終了後の定時に起動するようにしてください。取引状況をメールすることができました。

メール送信結果

今回のソースはEasyLanguage側はここに、VBScriptの方はここからダウンロードできます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です