ともさんのHP >プロブラミング >自作JavaLibrary >データベースの内容をメール送信するJava実行クラス
データベースの内容をメール送信するJava実行クラス
tomojavalib.exec.SendYoteiは定期的にデータベースの内容をメールで送信するJava実行クラスです。
自分の予定をデータベースに登録しておき、携帯電話に送信して忘れないようにするために作りました。
データベースにアクセスするためのクラスはこちら。
メール送信のためのクラスはこちら。
ゴミをなかなか捨てられず、溜り気味で困ったので作ってみました。
ゴミ捨て日がいつなのか覚えていられないので、メールで送れば読んで捨てるだろうという考え。
他に個人的な予定も入れることにしました。仕事関係の予定は入れないようにしています(情報漏洩が怖いので)。
データベースのテーブルはこんな感じ。
予定は下記スケジュールを選べるようにクエリーを設定しました。
年月日(1回だけ)
毎年○月○日
毎月○日
毎月第○回目の○曜日
毎週○曜日
毎月末
けっこう複雑なSQLを経て生成するクエリーが下記のようになります。「今後1週間の予定」
ゴミ捨てばかりですが、別に私はゴミ捨てばかりしている人間ではありません。
このデータベースの内容をこの
Java
楽天 Classを用いて携帯電話に送信した結果が下の画像。
下記Javaソース
package tomojavalib.exec;
import java.util.*;
import tomojavalib.comm.*;
import tomojavalib.net.SendMail;
public class SendYotei implements Runnable
{
Thread timer;
DbsComm dbc ;
String member[] = { "tuki" , "hi" , "youbi" , "yoteiq" };
String dbs = "yoteimail";
public static void main(String[] args)
{ SendYotei sy = new SendYotei() ; }
public SendYotei()
{
//データベースの準備
dbc = new DbsComm( dbs , member );
//タイマー起動
timer = new Thread(this);
timer.start();
}
//実行関数
public void run()
{
int hr = 0;
int hhr = 0;
//無限ループ
do{
//1秒休憩
try{ timer.sleep(5000);}catch(InterruptedException e){}
Calendar c = Calendar.getInstance(); //現在時刻のカレンダー作成
hr = c.get( Calendar.HOUR_OF_DAY );
//時刻が5時になったらメール送信を実行
if(hhr==4){if(hr==5){ sendMail(); }}
System.out.print( hr+"時" );
//sendMail();
hhr = hr;
}while(true);
}
//メール送信
public void sendMail()
{
//送信文字列の作成
String s="";
try{
dbc.getAll();
}catch (Exception e){ e.printStackTrace(); }
for(int i=0; i<dbc.datano ; i++)
{
for(int ii=0; ii<member.length ; ii++)
{
if( dbc.data[i][ii]==null){dbc.data[i][ii]="";}
s= s + dbc.data[i][ii]+" ";
//System.out.print( dbc.data[i][ii]+" " );
}
s=s+"\n";
}
//送信
SendMail sm = new SendMail();
//あて先のアドレス
String to = "tomosannokeitaiadress@keitaidenwa";
//件名
String subject = "ともさんの予定";
//内容
String text = s;
//送信
sm.send( to , subject , text );
//System.out.println( s );
return;
}
}
最終更新日: 2012-07-10 06:28:19
ともさんのHP >プロブラミング >自作JavaLibrary >データベースの内容をメール送信するJava実行クラス
ツイート