/*以下代码几乎功能是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.util.Timer`)允许我们调度任务在未来某一时刻执行或周期性执行。`Timer`类提供了`schedule()`和`...
在定时发送邮件的场景下,我们可以使用`Timer`类或者`Task.Delay`方法来设置一个定时器,每隔一段时间触发邮件发送任务。 3. **定时发送邮件**: 定时发送邮件的核心在于设置一个定时器,当达到预定时间时,调用邮件...
shell 定时器与 shell 发送邮件给到邮箱 在 Linux 系统中,shell 定时器是一种非常有用的功能,可以让用户在指定的时间执行特定的任务。shell 定时器可以用于自动化一些重复性的任务,例如备份数据、发送邮件等。 ...
总之,".Net用线程来实现定时发送邮件"这个项目结合了.NET的多线程技术、定时器和电子邮件服务,创建了一个能够按预定时间间隔自动发送邮件的实用工具。开发者可以借此学习和理解如何在.NET环境中实现并发和定时任务...
`DataBase1.cs`可能是用于处理数据库操作的类,虽然在定时发送邮件的场景中,我们可能并不直接使用数据库,但如果有需要存储用户信息或者邮件记录的需求,这里会派上用场。 `MailHelper.cs`是核心的邮件发送辅助类...
总结起来,C#创建的Windows服务结合SMTP邮件发送,实现了自动化定时发送邮件的功能,极大地提高了工作效率。开发者可以根据具体需求调整定时间隔,以及邮件的内容和附件,使其适应各种应用场景。
Java定时器定时调用任务是Java编程中一个重要的功能,它允许开发者在特定的时间间隔执行某项任务,比如定期检查数据库、发送邮件或者执行维护操作等。Java中的定时任务实现通常涉及`java.util.Timer`类和`java.util....
本项目名为"winform 定时发送邮件(含源码)",显然它是一个使用C#或VB.NET等.NET语言编写的WinForm应用,其核心功能是实现邮件的定时发送。这种应用通常会结合Windows任务计划程序或者自定义的定时器组件来在指定...
在C#编程中,定时器(Timer)是一个非常重要的组件,它允许我们在特定的时间间隔执行某段代码,例如定期检查数据库、发送邮件、更新UI或执行任何其他周期性任务。定时器类在System.Timers和System.Threading命名空间...
5. **定时发送邮件**: 代码中的 `执行程序` 子程序负责检查是否到了预设的发送时间(在Sheet4的G列)。`启动定时器` 子程序使用 `Application.OnTime` 来安排定时任务,每次间隔1秒执行一次 `执行程序`,直到所有...
在C#编程中,定时发送邮件是一项常见的任务,尤其在企业级应用中,例如自动报告、提醒服务等。本文将详细讲解如何使用C#来实现这一功能,包括邮件的创建、配置、定时器的设置以及多线程处理,以及如何记录发送状态。...
在开发Web应用时,有时我们需要实现一些特定任务的自动化执行,比如数据备份、发送邮件、统计分析等。ThinkPHP框架,作为一个广泛使用的PHP开发框架,提供了实现定时任务的能力。本篇将详细介绍如何在ThinkPHP中设置...
这个程序的使用场景可能包括定期报告、提醒通知或者自动化的数据同步等,通过定时发送邮件来提高效率和自动化程度。值得注意的是,实际部署时需要正确配置SMTP服务器的相关信息,如服务器地址、端口、用户名和密码,...
通过以上分析,我们可以看到,在ASP.NET(C#)中实现定时发送邮件涉及到了多个层面的技术:使用`System.Timers.Timer`进行定时任务管理,利用`MailMessage`和`SmtpClient`进行邮件构建和发送,以及处理异常和日志...
*** 应用程序通常会依赖于 Windows 服务来执行一些后台任务,比如定时发送邮件。在本篇文档中,将详细介绍如何在***环境中,通过Windows服务实现定时任务,向指定用户发送电子邮件。该方法在系统后台运行,以保证...
- 定时任务在许多领域都有广泛的应用,如定期备份数据库、清理缓存、发送邮件通知、系统监控等。 - 使用Java定时器,开发者可以编写更加高效和自动化的应用程序,减少人工干预,提高系统的自动化程度和可靠性。 5...
在JavaScript的世界里,Node.js作为一个强大的后端运行环境,提供了许多便利的功能,其中之一就是通过Nodemailer模块实现自动定时发送邮件。本篇文章将详细介绍如何利用Node.js和Nodemailer搭建一个自动发送邮件的...
在Java中,我们可以使用`java.util.Timer`类来创建定时任务;在JavaScript中,有`setTimeout`和`setInterval`函数来实现类似功能。 提醒(Reminder)是一种通知机制,它会在用户设置的时间点发出提示,以帮助用户...
综上所述,这个项目展示了如何使用C# 2008开发Windows服务来实现定时自动发送邮件的功能,同时利用MS SQL数据库存储和管理相关数据,且具备与Web应用程序的集成能力。这个源码对于学习Windows服务开发和邮件自动化...