`
wang38361640
  • 浏览: 5559 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

用定时器定时发送邮件

阅读更多
/*以下代码几乎功能是OK的,测试邮件发送时改掉代码内对应的邮箱名:wangchao 及密码:用"********"代替的
需要引入的包有:mail.jar   activation.jar  在附件中上传
*/
package mail;

import   javax.mail.Authenticator;  
import   javax.mail.PasswordAuthentication; 
import javax.mail.*;  
import javax.mail.internet.*;  
import javax.activation.*; 
import javax.naming.NamingException;  
import javax.naming.InitialContext;  
import javax.naming.Context;  



import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;  
import java.net.*;
public class SimpleMailSender {

public static void main(String[] args){
new SimpleMailSender().beepForAnHour();

}
public   void   test_main()throws   Exception{  
 
try{  
   
  Properties   props   =   new   Properties   ();    
  /**在这mail.smtp.host   是邮件服务器的地址,比喻smtp.163.com   是163的接收邮件的服务器一般用smtp.163.com   就可以了但是,在我的AIX操作系统中不能解析这个地址,所以用220.181.12.16,  
  你也可以通过在dos底下用ping   smtp.163.com   来得到一个IP地址  
  */  
  props.put("mail.smtp.host",   "smtp.163.com");  
   
  /**  
    mail.transport.protocol   是邮件传输协议中的接收协议;smtp既可;    
  */  
  props.put("mail.transport.protocol","smtp");  
  /**  
      是否通过验证;一般为true   。false不能通过验证;  
  */      
  props.put("mail.smtp.auth","true");  
  //mail.user   为用户邮箱登陆名;      
  props.put("mail.user",   "wangchao");  
  //mail.password   邮箱登陆密码;      
  props.put("mail.password",   "****");  
  Session   sendMailSession;    
  //用户验证使用的实例;  
  MyAuth   auth   =   new   MyAuth("wangchao","******");  
  //根据用户验证和当前属性来创建一个会话对象;  
  sendMailSession   =   Session.getDefaultInstance(props,auth);  
  sendMailSession.setDebug(false);    
  Transport   tran   =   sendMailSession.getTransport("smtp");  
  tran.connect();  
  System.out.println("测试连接是否成功 = "+tran.isConnected());//测试连接是否成功;  
  Message   mess   =   new   MimeMessage(sendMailSession);//通过会话  
  //发送邮件的邮件地址;  
  mess.setFrom(new   InternetAddress("wangchao@163.com"));  
  //接收邮件的邮件地址;  
//   mess.setRecipient(Message.RecipientType.TO,new   InternetAddress("wangrc@leagsoft.com"));  
  //接收邮件的邮件地址;  
//   mess.addRecipient(Message.RecipientType.TO,new   InternetAddress("wangrc@leagsoft.com"));  
  //发送的内容;  
  mess.setText("现在开始测试发送文件是否成功:汪荣超");  
  //发送时间;  
  mess.setSentDate(new   Date());  
  //内容主题;  
  mess.setSubject("测试发送文件是否成功");  
   
  mess.saveChanges();  
   
  Address[]   ad   =   new   Address[2];  
  //接收邮件的地址;  
  ad[0]   =   new   InternetAddress("xxx@126.com");  
  ad[1]   =   new   InternetAddress("hu_jing-sz@vanceinfo.com");  
  //发送邮件;  
  tran.sendMessage(mess,ad);  
   
  System.out.println("发送成功");  
   
   

/*
  //接收邮件;  
  Properties   props   =   new   Properties   ();    
  //接收邮件邮件的服务器地址;mail.pop3.host   ;220.181.12.113   同上面的一样;就不多说了;    
  props.put("mail.pop3.host",   "mail.pop3.host");  
   
  props.put("mail.store.protocol","pop3");//接收邮件的协议mail.store.protocol   =   pop3  
       
  props.put("mail.password",   "6860347");  
       
  props.put("mail.user",   "wangchao19850623");//用户密码;  
       
  props.put("mail.port",   "110");   //接收邮件服务器开的端口;163.com的端口是110;  
   
  Session   sendMailSession;    
   
  sendMailSession   =   Session.getInstance(props,null);  
   
  Provider   pro   =   sendMailSession.getProvider("pop3");  
  //默认的不能创建Store   store   =   sendMailSession.getStore();创建不出来;为NULL异常;  
  Store   store   =   sendMailSession.getStore(pro);  
  //先建立连接才能接收邮件;  
  store.connect("220.181.12.218",110,"wangchao19850623","6860347");  
  //是否连接成功;  
  System.out.println(store.isConnected());  
  //打开收件箱,得到一个目录;  
  Folder   folder   =   store.getFolder("INBOX");  
  //打开目录;只读方式打开;  
  folder.open(Folder.READ_ONLY);  
//   从收件箱中提出邮件;  
  Message[]   mess   =   folder.getMessages();  
  //底下应该看的懂了;  
  System.out.println(mess.length);  
   
  System.out.println(mess[0].getSubject());  
   
  System.out.println(mess[0].getSentDate().toString());  
   
   
  }catch(NullPointerException   e)  
   
  {  
   
  System.out.println(e.getMessage()+"异常");  
*/



  }catch(Exception   ex)  
  {  
System.out.println(ex.getMessage()+"异常");  
  }  
}

public void beepForAnHour(){
TimerTask task = new TimerMask();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date_str = null;
try {
date_str = sdf.parse("2010-1-20 09:23:00");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Date date = date_str;
Timer timer = new Timer();
timer.schedule(task, date,60000);
}
}



class   MyAuth   extends   Authenticator  
{  
private   String   userName   =   "";  
private   String   password   =   "";  
private   PasswordAuthentication     pass   =   null;  
public   MyAuth(String   userName,String   password)  
{  
pass   =   new   PasswordAuthentication(userName,password);  
}  
public   PasswordAuthentication   getPasswordAuthentication()  
{  
return   pass;  
}  
}  

class TimerMask extends TimerTask{
public void run(){
java.sql.Time sTime=new java.sql.Time(new Date().getTime());
System.out.println("测定Timer  "+sTime);
try {
new SimpleMailSender().test_main();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

分享到:
评论

相关推荐

    java使用定时器,定时发送邮件

    在这个场景中,我们将会深入探讨如何利用Java的定时器来实现定时发送邮件的功能。 首先,Java的定时器类(`java.util.Timer`)允许我们调度任务在未来某一时刻执行或周期性执行。`Timer`类提供了`schedule()`和`...

    C#实现定时发送邮件功能

    在定时发送邮件的场景下,我们可以使用`Timer`类或者`Task.Delay`方法来设置一个定时器,每隔一段时间触发邮件发送任务。 3. **定时发送邮件**: 定时发送邮件的核心在于设置一个定时器,当达到预定时间时,调用邮件...

    shell定时器与shell发送邮件给到邮箱

    shell 定时器与 shell 发送邮件给到邮箱 在 Linux 系统中,shell 定时器是一种非常有用的功能,可以让用户在指定的时间执行特定的任务。shell 定时器可以用于自动化一些重复性的任务,例如备份数据、发送邮件等。 ...

    .Net用线程来实现定时发送邮件

    总之,".Net用线程来实现定时发送邮件"这个项目结合了.NET的多线程技术、定时器和电子邮件服务,创建了一个能够按预定时间间隔自动发送邮件的实用工具。开发者可以借此学习和理解如何在.NET环境中实现并发和定时任务...

    定时发送邮件

    `DataBase1.cs`可能是用于处理数据库操作的类,虽然在定时发送邮件的场景中,我们可能并不直接使用数据库,但如果有需要存储用户信息或者邮件记录的需求,这里会派上用场。 `MailHelper.cs`是核心的邮件发送辅助类...

    C# Windows服务 定时自动发送邮件(带附件)

    总结起来,C#创建的Windows服务结合SMTP邮件发送,实现了自动化定时发送邮件的功能,极大地提高了工作效率。开发者可以根据具体需求调整定时间隔,以及邮件的内容和附件,使其适应各种应用场景。

    java定时器定时调用任务

    Java定时器定时调用任务是Java编程中一个重要的功能,它允许开发者在特定的时间间隔执行某项任务,比如定期检查数据库、发送邮件或者执行维护操作等。Java中的定时任务实现通常涉及`java.util.Timer`类和`java.util....

    winform 定时发送邮件(含源码)

    本项目名为"winform 定时发送邮件(含源码)",显然它是一个使用C#或VB.NET等.NET语言编写的WinForm应用,其核心功能是实现邮件的定时发送。这种应用通常会结合Windows任务计划程序或者自定义的定时器组件来在指定...

    c# 定时器 ,定时提交数据

    在C#编程中,定时器(Timer)是一个非常重要的组件,它允许我们在特定的时间间隔执行某段代码,例如定期检查数据库、发送邮件、更新UI或执行任何其他周期性任务。定时器类在System.Timers和System.Threading命名空间...

    VBA定时群发邮件.docx

    5. **定时发送邮件**: 代码中的 `执行程序` 子程序负责检查是否到了预设的发送时间(在Sheet4的G列)。`启动定时器` 子程序使用 `Application.OnTime` 来安排定时任务,每次间隔1秒执行一次 `执行程序`,直到所有...

    C#开发定时发送邮件(可用)

    在C#编程中,定时发送邮件是一项常见的任务,尤其在企业级应用中,例如自动报告、提醒服务等。本文将详细讲解如何使用C#来实现这一功能,包括邮件的创建、配置、定时器的设置以及多线程处理,以及如何记录发送状态。...

    基于thinkphp框架的定时器(定时执行任务)

    在开发Web应用时,有时我们需要实现一些特定任务的自动化执行,比如数据备份、发送邮件、统计分析等。ThinkPHP框架,作为一个广泛使用的PHP开发框架,提供了实现定时任务的能力。本篇将详细介绍如何在ThinkPHP中设置...

    定时6点发邮件的程序

    这个程序的使用场景可能包括定期报告、提醒通知或者自动化的数据同步等,通过定时发送邮件来提高效率和自动化程度。值得注意的是,实际部署时需要正确配置SMTP服务器的相关信息,如服务器地址、端口、用户名和密码,...

    asp.net(C#)定时发送邮件

    通过以上分析,我们可以看到,在ASP.NET(C#)中实现定时发送邮件涉及到了多个层面的技术:使用`System.Timers.Timer`进行定时任务管理,利用`MailMessage`和`SmtpClient`进行邮件构建和发送,以及处理异常和日志...

    asp.net基于windows服务实现定时发送邮件的方法

    *** 应用程序通常会依赖于 Windows 服务来执行一些后台任务,比如定时发送邮件。在本篇文档中,将详细介绍如何在***环境中,通过Windows服务实现定时任务,向指定用户发送电子邮件。该方法在系统后台运行,以保证...

    java定时器(定时任务)

    - 定时任务在许多领域都有广泛的应用,如定期备份数据库、清理缓存、发送邮件通知、系统监控等。 - 使用Java定时器,开发者可以编写更加高效和自动化的应用程序,减少人工干预,提高系统的自动化程度和可靠性。 5...

    【JavaScript源代码】如何利用nodejs自动定时发送邮件提醒(超实用).docx

    在JavaScript的世界里,Node.js作为一个强大的后端运行环境,提供了许多便利的功能,其中之一就是通过Nodemailer模块实现自动定时发送邮件。本篇文章将详细介绍如何利用Node.js和Nodemailer搭建一个自动发送邮件的...

    定时器-每日提醒

    在Java中,我们可以使用`java.util.Timer`类来创建定时任务;在JavaScript中,有`setTimeout`和`setInterval`函数来实现类似功能。 提醒(Reminder)是一种通知机制,它会在用户设置的时间点发出提示,以帮助用户...

    C#2008后台定时自动发送邮件源码。

    综上所述,这个项目展示了如何使用C# 2008开发Windows服务来实现定时自动发送邮件的功能,同时利用MS SQL数据库存储和管理相关数据,且具备与Web应用程序的集成能力。这个源码对于学习Windows服务开发和邮件自动化...

Global site tag (gtag.js) - Google Analytics