이메일을 통해 캘린더에 일정을 추가하는 예가 필요합니다. 예를 들어 고객에게 약속과 관련하여 이메일을 보낼 때 전자 메일에 버튼을 클릭하여 이벤트를 캘린더에 추가 할 수있는 옵션이 필요합니다.이메일 알림을 통해 캘린더에 약속 추가하기
다른 사람이 나를 안내 할 수있는 것이 있습니까?
나는이 주로 ColdFusion에서 9
감사와 함께 사용합니다!
이메일을 통해 캘린더에 일정을 추가하는 예가 필요합니다. 예를 들어 고객에게 약속과 관련하여 이메일을 보낼 때 전자 메일에 버튼을 클릭하여 이벤트를 캘린더에 추가 할 수있는 옵션이 필요합니다.이메일 알림을 통해 캘린더에 약속 추가하기
다른 사람이 나를 안내 할 수있는 것이 있습니까?
나는이 주로 ColdFusion에서 9
감사와 함께 사용합니다!
나는 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입니다.
다음은 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>
ICS를 살펴보십시오. 상당히 간단한 형식이며 대부분의 현대 캘린더와 마찰없이 작동합니다. (사람들이 Outlook 일정에 이벤트를 추가 할 수 있도록 인트라넷 용으로 그런 일을했습니다. 불행히도 손을 쓸 코드가 없습니다.) – ale
@AlEverett 정보를 제공해 주셔서 감사합니다. – Geo