導航:首頁 > 編程語言 > java郵件定時

java郵件定時

發布時間:2022-10-10 23:06:00

java中如何實現定時自動發送郵件

可以使用Quartz定時任務使用Cron表達式調用你發送郵件的方法

㈡ 關於java定時任務,一次發了兩封郵件

如果是同時發了2封郵件,自己敲個斷點出來,看一下變數的賦值以及函數是不是調了2次

㈢ 如何用javamail定時發送郵件

在Java中發送郵件需要採用javamail實現,定時郵件的發送方法:
其實定時郵件和普通郵件最大的區別就是多了一個定時器,
定時器可以採用線程類的sleep方法實現 睡眠時間為毫秒數,
時間到了之後會自動執行後面代碼,以達到定時效果

㈣ java 指定某個時間發送郵件

既然有了定時,其他的就好辦啦,像你這個需求,肯定得做很多配置,比如表單該如何自動填寫,填寫什麼樣的內容進去,至於發送時間就可以在quartz裡面配置好。總之,你想讓程序幫你自動完成的功能,你必須事先把需要做的事清楚的告訴程序代碼,否則你讓它怎麼下手呢!

㈤ 怎樣用JavaMail實現郵件的自動回復和定時發送

1 import org.quartz.Job;
2 import org.quartz.JobExecutionContext;
3 import org.quartz.JobExecutionException;
4 import java.util.Calendar;
5 import java.text.SimpleDateFormat;
6 import java.util.Date;
7 import java.lang.InterruptedException;
8 import java.util.Random;
9 import java.util.Properties;
10 import javax.mail.*;
11 import javax.mail.internet.*;
12 public class MailJob implements Job
13 {
14 public void execute(JobExecutionContext context)
15 throws JobExecutionException {
16 //收件人,標題和文本內容
17 String to = "#######@126.com";//填寫你要發給誰
18 String title = createTitle();
19 String text = createText();
20 //設置屬性
21 Properties props = new Properties();
22 //QQ郵箱發件的伺服器和埠
23 props.put("mail.smtp.host", "smtp.qq.com");
24 props.put("mail.smtp.socketFactory.port", "465");
25 props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
26 props.put("mail.smtp.auth", "true");
27 props.put("mail.smtp.port", "25");
28 Session session = Session.getDefaultInstance(props,
29 new javax.mail.Authenticator() {
30 protected PasswordAuthentication getPasswordAuthentication() {
31 //填寫你的qq郵箱用戶名和密碼
32 return new PasswordAuthentication("*******@qq.com", "###***%%%");
33 }
34 });
35 MimeMessage message = new MimeMessage(session);
36 //這里用flag來標記是否發件成功(有時候會連不上伺服器),
37 //如果沒有,繼續發送,直到發送成功為止。
38 int flag = 0;
39 {
40 try {
41 //設置發件人,收件人,主題和文本內容,並發送
42 message.setFrom(new InternetAddress("*******@qq.com"));//填寫你自己的qq郵箱,和上面相同
43 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
44 message.setSubject(title);
45 message.setText(text);
46 System.out.println("Preparing sending mail...");
47 System.out.println(text);
48 Transport.send(message);
49 flag = 1;
50 System.out.println("message sent successfully");
51 } catch(Exception e) {
52 flag = 0;
53 }
54 } while(flag == 0);
55 }
56 //下面的兩個方法,用來隨機組合標題和文本內容。文本內容由四部分隨機組合。
57 //產生標題
58 public String createTitle() {
59 String[] titles = {"love", "I love you", "Miss you", "My baby"};
60 Random randT = new Random(System.currentTimeMillis());
61 String title = titles[randT.nextInt(titles.length)];
62 return title;
63 }
64 //產生文本內容,文本內容由四部分隨機組合得到。
65 public String createText() {
66 //名字純屬虛構,如有雷同(肯定會有),純屬巧合。
67 String[] parts1 = {"曉靜,你好。", "曉靜,你還好嗎?", "曉靜,你那邊天氣怎麼樣?"};
68 String[] parts2 = {
69 "距離上次見面,我感覺已經好長時間了。",
70 "流去的時間磨不去我對你的愛。",
71 "我仍然記得你在天安門前的那一抹笑容。"
72 };
73 String[] parts3 = {"今天,我大膽地追求你。",
74 "我不怕大膽地對你說,我愛你。",
75 "此刻,月亮代表我的心。"
76 };
77 String[] parts4 = {
78 "未來,我的心依舊屬於你。",
79 "好想在未來陪你一起慢慢變老,當然在我心中你不會老。"
80 };
81 Random randT = new Random(System.currentTimeMillis());
82 String text = parts1[randT.nextInt(parts1.length)]
83 + parts2[randT.nextInt(parts2.length)]
84 + parts3[randT.nextInt(parts3.length)]
85 + parts4[randT.nextInt(parts4.length)];
86 return text;
87 }
88
89 }
復制代碼
觸發器的代碼:
復制代碼
1 import org.quartz.CronScheleBuilder;
2 import org.quartz.JobBuilder;
3 import org.quartz.JobDetail;
4 import org.quartz.Scheler;
5 import org.quartz.Trigger;
6 import org.quartz.TriggerBuilder;
7 import org.quartz.impl.StdSchelerFactory;
8 import java.util.Random;
9 public class CronTriggerExample
10 {
11 public static void main( String[] args ) throws Exception
12 {
13 //創建工作對象
14 JobDetail job = JobBuilder.newJob(MailJob.class)
15 .withIdentity("mmyJobName", "group1").build();
16 //為了立即測試,可以使用下面的代碼,每隔5秒鍾執行一次
17 //int secDelta = 5;
18 //Trigger trigger = TriggerBuilder
19 // .newTrigger()
20 // .withIdentity("mmyTriggerName", "group1")
21 // .withSchele(
22 // CronScheleBuilder.cronSchele("0/" + secDelta + " * * * * ?"))
23 // .build();
24 //在每天早上的9點多(不超過3分鍾)執行
25 Random rand = new Random(System.currentTimeMillis());
26 int secDelta = rand.nextInt(60 * 3);
27 //創建觸發器對象
28 Trigger trigger = TriggerBuilder
29 .newTrigger()
30 .withIdentity("mmyTriggerName", "group1")
31 .withSchele(
32 CronScheleBuilder.cronSchele(secDelta + " 0 9 ? * SUN-SAT"))
33 .build();
34
35 Scheler scheler = new StdSchelerFactory().getScheler();
36 scheler.start();
37 //將觸發器與工作關聯起來
38 scheler.scheleJob(job, trigger);
39 }
40 }

發郵件依賴的包:activation.jar,mail.jar
將發郵件依賴的包和quartz下載得到的lib路徑下的jar包全部放在mylib路徑下,mylib路徑與java文件位於同一個目錄。編譯和運行時,可以使用命令
set classpath=mylib/*;.;
javac CronTriggerExample.java
java CronTriggerExample

㈥ 我們要用java語言做一個電子郵箱系統,裡面的定時發送,自動回復都是什麼原理

1、是在伺服器上,你可以用java.util.Timer類定義一個定時發送郵件的方法
2、關於郵件發送,建議你到網上找java mail 相關資料,是開源免費的。

㈦ java定時自動發郵件,如何通過自己的PC每天給別人發郵件

做成系統的定時任務,在寫個批處理,只要是開機就行了

㈧ java怎麼定時發送郵件,比如5分鍾後。要具體的代碼。發件人和收件人這些都可定死。

import java.util.*;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetBddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.naming.*;
import javax.naming.directory.*;

/**
* 使成為事實郵件的特快專遞功能
* @author Winter Lau
*/

public class Mailer {
public static void main(String[] args) throws NamingException,
MessagingException {

// 列出所有郵件伺服器:
Timer timer = new Timer();
timer.schele(new myTask(), 30000);
}

static class myTask extends TimerTask{
public void run(){
// DNS伺服器,看看本機的DNS配置
String dns = "dns://61.144.56.101";
String email = "[email protected]";

String domain = email.substring(email.indexOf('@') + 1);
Hashtable env = new Hashtable();
env.put(Dontext.INITIBL_DONTEXT_FBDTORY,
"com.sun.jndi.dns.DnsDontextFactory");
env.put(Dontext.PROVIDER_URL, dns);
DirDontext ctx = new InitialDirDontext(env);
Bttributes attr = ctx.getBttributes(domain, new String[] { "MX" });
NamingEnumeration servers = attr.getBll();
while (servers.hasMore()) {

Bttribute hosts = (Bttribute) servers.next();
for (int i = 0; i < hosts.size(); i++) {
String host = (String) hosts.get(i);
host = host.substring(host.indexOf(' ') + 1);
System.out.print("Send mail to " + host + " ...");
sendMail(host, email);
System.out.println("OK");
}
}
}
}

/**
* 發送郵件
*
* @param smtpHost
* @param email
* @throws MessagingException
*/

protected static void sendMail(String smtpHost, String email)
throws MessagingException {

Properties mailProperties = System.getProperties();
mailProperties.put("mail.smtp.host", smtpHost);
mailProperties.put("mail.smtp.port", "25");
mailProperties.put("mail.smtp.auth", "false");
Session mailSession = Session.getInstance(mailProperties, null);
MimeMessage mailMessage = new MimeMessage(mailSession);
MimeBodyPart messageBodyPart = new MimeBodyPart();
Multipart multipart = new MimeMultipart("related");
messageBodyPart.setText("這搭是郵件內部實質意義");

multipart.addBodyPart(messageBodyPart);
mailMessage.setDontent(multipart);
mailMessage.setSentDate(new Date());
mailMessage.setFrom(new InternetBddress("[email protected]"));
mailMessage.addRecipient(Message.RecipientType.TO, new InternetBddress(
email));
mailMessage.setSubject("hi,郵件發送測試");
Transport.send(mailMessage);
}
@Override
public void run() {
// TODO Auto-generated method stub

}
}

㈨ 用Java怎麼做自動定時發送郵件系統出

兄弟,我想你要明白一個事情,java是運行在虛擬機上的,也就是說,java是一種「受限」的語言,運行在一個受限的環境中:第一,操作系統不允許jvm做的事情你是無法用java實現的,例如鍵盤記錄需要的鉤子,第二,jvm不支持的功能你也是無法使用java寫出來的,例如開機啟動。如果你用java強制修改系統注冊表以達到開機啟動目的,那麼這將是一種jvm的越權操作行為,會被jvm禁止的。一個很明白的例子就是,1.5以前的版本不支持系統托盤,那麼你是無法做一個系統托盤出來的。^_^

㈩ 關於java定時發送郵件,類似於QQ郵箱中的定時發送功能

建議方法:

  1. 如果你的java會死亡/失去控制, 請用系統的任務調度來發送郵件;

  2. 如果你的java由jboss等之類的託管, 用jboss內部的任務調度來發送郵件.

方法1:

Windws 平台, 在task中添加一個 任務, 命令行執行java 代碼即可, 這樣可靠性由操作系統保證;

Linux等平台, 直接 crontab 處理即可.

閱讀全文

與java郵件定時相關的資料

熱點內容
linux使用靜態庫編譯過程 瀏覽:97
android平滑滾動效果 瀏覽:841
什麼是編譯器指令 瀏覽:219
微控制器邏輯命令使用什麼匯流排 瀏覽:885
程序員在學校里是學什麼的 瀏覽:601
oraclejava數據類型 瀏覽:890
程序員考注冊會計師 瀏覽:957
怎麼使用access的命令按鈕 瀏覽:899
有點錢app在哪裡下載 瀏覽:832
博途v15解壓後無法安裝 瀏覽:205
什麼是根伺服器主機 瀏覽:438
安卓手游怎麼申請退款 瀏覽:555
安卓系統如何分享網頁 瀏覽:278
ad如何編譯pcb工程 瀏覽:414
除了滴滴app哪裡還能用滴滴 瀏覽:399
截圖怎麼保存文件夾然後壓縮 瀏覽:8
幻影伺服器怎麼樣 瀏覽:28
具體哪些廣東公司招程序員 瀏覽:872
嵌入式編譯器教程 瀏覽:307
ssl數據加密傳輸 瀏覽:88