2011-12-30 2 views
2

이메일을 통해 캘린더에 일정을 추가하는 예가 필요합니다. 예를 들어 고객에게 약속과 관련하여 이메일을 보낼 때 전자 메일에 버튼을 클릭하여 이벤트를 캘린더에 추가 할 수있는 옵션이 필요합니다.이메일 알림을 통해 캘린더에 약속 추가하기

다른 사람이 나를 안내 할 수있는 것이 있습니까?

나는이 주로 ColdFusion에서 9

감사와 함께 사용합니다!

+2

ICS를 살펴보십시오. 상당히 간단한 형식이며 대부분의 현대 캘린더와 마찰없이 작동합니다. (사람들이 Outlook 일정에 이벤트를 추가 할 수 있도록 인트라넷 용으로 그런 일을했습니다. 불행히도 손을 쓸 코드가 없습니다.) – ale

+0

@AlEverett 정보를 제공해 주셔서 감사합니다. – Geo

답변

2

나는 http://www.cflib.org/udf/icalus

WebDH 좋은 예 here을 제공에서 iCalUs UDF를 권 해드립니다.

다음은 CF9를 사용하여 신속하게 정리했지만 아직 테스트하지 않은 예제입니다.

<cfscript> 

    eventStr = {}; 
    eventStr.organizerName = "John Doe"; //Organizer Name 
    eventStr.organizerEmail = "[email protected]"; //Organizer Email 
    eventStr.startTime = ParseDateTime("12/30/2011 11:00"); //format: m/d/yyyy HH:mm OR h:mm TT -- this is Eastern time 
    eventStr.subject = "Demo Example"; 
    eventStr.location = "StackOverflow.com"; 
    eventStr.description = "Example iCalendar using CF9"; 

    // Display in browser 
    //pc = getpagecontext().getresponse(); 
    //pc.getresponse().setcontenttype('text/calendar'); 
    //pc.setHeader("Content-Disposition","inline;filename=newAppointment.ics"); 
    //writeOutput(iCalUS(eventStr)); 

    //Email 
    m = new mail(); 
    m.setSubject("Event"); 
    m.setTo("[email protected]"); 
    m.setFrom("[email protected]"); 
    m.setServer("localhost"); 
    //m.addParam(file="#ACCOUNT_TXT_FILE#"); 
    m.addPart(type="text", charset="utf-8", wraptext="72", body="Attached is a calendar event..."); 
    m.addPart(type="text/calendar" body="#iCalUS(eventStr)#"); 
    m.send(); 

</cfscript> 

캘린더 이벤트를 이메일로 보내는 방법을 보여주는 또 다른 예는 reference입니다.

+0

도움을 주셔서 감사 드리며 말씀 드리고자합니다. 그것은 어려운 일이 아닌 것처럼 보입니다. 난 그냥 내 회사가 매일 보내고있는 다양한 이메일로 그것을 테스트 시간을 보내고있다 – Geo

+0

내가 해냈어. 다시 한 번 감사드립니다! – Geo

1

다음은 ICS 형식의 매우 기본적인 구현입니다. 이것은 브라우저를 통해 액세스 할 수 있도록 설계되었지만 ICS 확장자가있는 텍스트 파일을 작성하여 전자 메일로 보내려면 상당히 학문적입니다.

<cfheader name="Content-Disposition" value="attachment; filename=event.ics" /> 
<cfcontent reset="true" type="text/calendar" /> 
<cfscript> 
// handle all-day events 
if (NOT isDate(starttime) OR NOT isDate(endtime)) { 
    dtstart=';VALUE=DATE:#dateFormat(eventdate,"yyyymmdd")#'; 
    dtend=';VALUE=DATE:#dateFormat(dateAdd("d",1,eventdate),"yyyymmdd")#'; 
} else { 
    dtstart=';TZID="Eastern Standard Time":#dateFormat(eventdate,"yyyymmdd")#T#timeFormat(starttime,"HHmmss")#'; 
    dtend=';TZID="Eastern Standard Time":#dateFormat(eventdate,"yyyymmdd")#T#timeFormat(endtime,"HHmmss")#'; 
} 
</cfscript> 

<cfoutput> 
BEGIN:VCALENDAR 
PRODID:-//Company//Source//EN 
VERSION:2.0 
METHOD:PUBLISH 
BEGIN:VTIMEZONE 
TZID:Eastern Standard Time 
BEGIN:STANDARD 
DTSTART:16011104T020000 
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11 
TZOFFSETFROM:-0400 
TZOFFSETTO:-0500 
END:STANDARD 
BEGIN:DAYLIGHT 
DTSTART:16010311T020000 
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3 
TZOFFSETFROM:-0500 
TZOFFSETTO:-0400 
END:DAYLIGHT 
END:VTIMEZONE 
BEGIN:VEVENT 
CLASS:PUBLIC 
CREATED:#dateFormat(dateAdded,"yyyymmdd")#T#timeFormat(dateAdded,"HHmmss")#Z 
DESCRIPTION:#desc# 
DTEND#dtend# 
DTSTAMP:#dateFormat(dateAdded,"yyyymmdd")#T#timeFormat(dateAdded,"HHmmss")#Z 
DTSTART#dtstart# 
LAST-MODIFIED:#dateFormat(dateApproved,"yyyymmdd")#T#timeFormat(dateApproved,"HHmmss")#Z 
LOCATION:#location# 
PRIORITY:5 
SEQUENCE:0 
SUMMARY;LANGUAGE=en-us:#title# 
TRANSP:OPAQUE 
UID:#dateFormat(now(),"yyyymmdd")#T#timeFormat(now(),"HHmmss")#[email protected]#uniqueID# 
BEGIN:VALARM 
TRIGGER:-PT15M 
ACTION:DISPLAY 
DESCRIPTION:Reminder 
END:VALARM 
END:VEVENT 
END:VCALENDAR 
</cfoutput>