java ics 发送邮件日历提醒

本文档介绍如何使用Java和iCal4j库生成日历提醒,并通过邮件发送。主要内容包括创建事件、设置时区、定义开始和结束时间、添加参与者等步骤。示例代码展示了如何创建事件并将其转换为ics文件,然后通过电子邮件发送给客户。
摘要由CSDN通过智能技术生成


        最近做了一个项目,要根据客户定制的任务信息发日历提醒信息,上网查了些资料,发现网上的资料有些不全,这对于初次接触这个技术的人来说是件很麻烦的事,所以把代码分享一下,希望对大家有所帮助。

      发送日历提醒有两种方式 ,一种通过纯文本方式,一种是通过iCal4j 自动生成一个提醒时间,不管哪种方式,都要有一下几个元素


BEGIN:VCALENDAR                   ------ 起始
VERSION:2.0                       ------ 版本
PRODID:iCal4j v1.0//EN            ------ 创建该对象的标志符
BEGIN:VEVENT                      ------ 事件开始
DTSTART:19970714T170000Z          ------ 事件起始时间
DTEND:19970715T040000Z            ------ 事件结束时间
SUMMARY:Bastille Day Party        ------ 事件概要
END:VEVENT                        ------ 事件结束
END:VCALENDAR                     ------ 结束

上面的例子,它表示发生在 1997 年七月十四日下午五点与 1997 年七月十五日四点之间的事件“Bastille Day Party”。      


较为详细的资料可以参考 iCalendar 编程基础:了解和使用 iCal4j 这篇文章。


下面我们通过代码来讲解

首先 需要几个jar 包  mail.jar(生成邮件的),ical4j-1.0.jar 

下面是完整的java 代码


这个 类 是生成提醒时间的类

SalesFollowupScheduleImpl.java

 import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.net.SocketException;
import java.net.URI;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import net.fortuna.ical4j.data.CalendarOutputter;
import net.fortuna.ical4j.model.DateTime;
import net.fortuna.ical4j.model.TimeZone;
import net.fortuna.ical4j.model.TimeZoneRegistry;
import net.fortuna.ical4j.model.TimeZoneRegistryFactory;
import net.fortuna.ical4j.model.ValidationException;
import net.fortuna.ical4j.model.component.VEvent;
import net.fortuna.ical4j.model.component.VTimeZone;
import net.fortuna.ical4j.model.parameter.Cn;
import net.fortuna.ical4j.model.parameter.PartStat;
import net.fortuna.ical4j.model.parameter.Role;
import net.fortuna.ical4j.model.parameter.Rsvp;
import net.fortuna.ical4j.model.property.Attendee;
import net.fortuna.ical4j.model.property.CalScale;
import net.fortuna.ical4j.model.property.Created;
import net.fortuna.ical4j.model.property.Location;
import net.fortuna.ical4j.model.property.Method;
import net.fortuna.ical4j.model.property.ProdId;
import net.fortuna.ical4j.model.property.Uid;
import net.fortuna.ical4j.model.property.Version;
import net.fortuna.ical4j.util.UidGenerator;
import org.apache.log4j.Logger;
import com.m3td.m3ssi.bussion.email.MailSendCustomerManagerImpl;
import com.m3td.m3ssi.common.util.FileUtil;
import com.m3td.m3ssi.entity.sales.SalesFollowupBean;


/**
 * Sales Person 任务日程提醒(生成ICS)
 * 
 * @author jet
 * @time 2012-12-13
 * 
 */
public class SalesFollowupScheduleImpl {
 
 
private static final Logger log = Logger
.getLogger(SalesFollowupScheduleImpl.class);
 
//创建日历
public void createEvent(SalesFollowupBean salesFollowupBean) throws ParseException, IOException, ValidationException{

if(salesFollowupBean!=null)
{
SimpleDateFormat sdf  =new  SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 
Date startDateV = new Date();
String date = salesFollowupBean.getTask_fulltime();


String content = salesFollowupBean.getTask_content();
startDateV = sdf.parse(date);
 
//创建时区
TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();

//设置时区
TimeZone timezone = registry.getTimeZone("America/Mexico_City"); 
VTimeZone tz = timezone.getVTimeZone();

// Start Date

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值