Javamailを用いて、プログラムを実行することでメールを送ることには成功しました。
ここからが本題なのですが、
プログラムをループさせたままにして、
Javaで時刻を指定して(何時何分、というように)
メールを送信することは出来るのでしょうか。
一日につき5回程送りたいと思っています。
CalenderやDateを使用することも考えたのですが、
上手くループせず定時の送信は出来ませんでした。
ちなみに作ったものがこちらです↓
package mailSend;
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
public class MailXML {
public static void main(String[] args) throws AddressException, MessagingException, IOException{
Calendar cal = Calendar.getInstance();
while(true){
int hournow = cal.get(Calendar.HOUR_OF_DAY);
int minnow = cal.get(Calendar.MINUTE);
System.out.println(hournow + ":"+ minnow);
while(hournow == 1 && minnow == 25 ){
Mail.gatemsg();
Mail.roommsg();
break;
}
}
}
}
メールの送り先と内容はいつも同じです。
ループする(1回/分)ごとに上手くhournow()とminnnow()が更新されればよいのですが…。
そもそものやり方がおかしいのか、小さな勘違いをしているだけなのかもわかりません。
どなたか解決方法をお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
OSのスケジューラを使うのは他の方が述べているので、あえてJavaで
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Test{
public static void main(String[] args){
//現在時間を表示するtask
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println(now());
}
};
Timer timer = new Timer();
//今から5秒間隔でtaskを実行する
timer.schedule(task, now(), 5*sec());
}
//現在日時取得用
static Date now(){
return new Date();
}
//ミリ秒の秒へ変換用
static long sec(){
return 1000;
}
}
参考URL:http://www.atmarkit.co.jp/fjava/javatips/078java …
No.1
- 回答日時:
確かに Calendar.getInstance() で現在の時刻を取得できます。
しかし、それで取得した時刻が自動的に現在時刻に更新されるわけではありません。とりあえず、Calendar.getInstance() をループの中に入れればたぶんうまくいくでしょう。
……が、自分ならメールを一回送るだけのプログラムを作って、定時実行の方は OS の機能でやらせます。Windows ならタスクスケジューラ、UNIX 系なら……何だったっけ? とにかく定時に特定のプログラムを実行させる機能があるはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- サーバー 接続・ログインはできているのにメールが送信できない 2 2022/06/27 15:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「例外 *** は対応する try 文...
-
HTMLでのTableタグデータ取得方法
-
java初心者です。座標取得と図...
-
NetBeansでのJButtonの配列化
-
干支の計算で。。。
-
画像の縦横サイズって取得でき...
-
Chorometerで一時停止した後再...
-
importするには java.io.*; imp...
-
jFrameを使って複数の画面を生...
-
メニューバーのプログラム
-
はじめてのjavaのソース解析
-
配列にnullを代入すると、null...
-
C#で動的配列Listの中身をListB...
-
C言語のポインターに関する警告
-
Javaで改行などが出来ないのです。
-
c# デリゲート関連の命名について
-
配列を逆順させて表示させる方...
-
応用情報技術者試験の令和元年...
-
getStringの値がNULLの時の処理
-
Path型をString型へ変換する(Java)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
干支の計算で。。。
-
Selenium IDEでexportしたコー...
-
Javaを使ってデジタル時計を作...
-
ColabでのPytorchのエラー
-
importするには java.io.*; imp...
-
生年月日と今日の日付から年齢...
-
ファイル名を動的に生成したい
-
文字列を数式に
-
<forEach> 内で供給された "ite...
-
Javaからストアド実行(配列項目)
-
シャットダウンフックが呼ばれない
-
ActionForm form にnullが入っ...
-
setAttribute(String, int)は適...
-
(急募)JavaカレンダーをGUI可に...
-
文字サイズが可変のラベル
-
python OpenPyXLを使って出力結...
-
Java での グローバルIP取得
-
データの外挿について
おすすめ情報