有些業務需要給使用者傳送會議邀請,其實不是很複雜的問題,但是因為要相容各種客戶端,所以很容易導致各種問題,我就被坑了幾次。時區問題,時間錯亂問題等等。下面貼上會議邀請的配置:
$meetingcontent
='begin:vcalendar
prodid:-//microsoft corporation//outlook 14.0 mimedir//en
version:2.0
method:request
x-ms-olk-forceinspectoropen:true
calscale:gregorian
begin:vtimezone
begin:standard
tzoffsetfrom:+0800
tzoffsetto:+0800
end:standard
end:vtimezone
begin:vevent'.'
organizer;cn="mail test":mailto:'
.$this
->mailer->from.
'attendee;cn='
.$email.
';rsvp=true:mailto:'
.$email.
'class:public
status:tentative
description:'
.$content.'
dtstart:'
.$starttime.
'dtend:'
.$endtime.
'created:'
.$starttime.
'dtstamp:'
.$starttime.
'location:'
.$this
->place.
'organizer:mailto:'
.$email.
'priority:5
sequence:0
summary;language=zh-cn:'
.$subject.
'transp:opaque
uid:'
.$uid.
'x-wr-alarmuid:'
.$uid.
'x-alt-desc;fmttype=text/html:\n\n\n'
.$content
.'\n
x-microsoft-cdo-busystatus:tentative
x-microsoft-cdo-importance:1
x-microsoft-cdo-intendedstatus:busy
x-microsoft-disallow-counter:false
x-ms-olk-autostartcheck:false
x-ms-olk-conftype:0
begin:valarm
trigger:-pt15m
action:display
description:reminder
end:valarm
end:vevent
end:vcalendar';
return
$meetingcontent;
需要注意一些問題,例如時區,預設是使用utc時間的,但是中國是東八區,所以要加上offset,否則一些客戶端的時間會錯誤。
begin
:vtimezone
begin
:standard
tzoffsetfrom
:+0800
tzoffsetto
:+0800
end:standard
end:vtimezone
另外兩個引數一定要加上,created和dtstamp,缺少這兩個引數會導致部分客戶端時間錯亂,差異幾十天。
uid也是不能缺少,否則更新時間後會新建乙個事件。
通過程式預覽Office文件
我承認,標題是誇大了,就是為了吸引注意力。這裡只有word文件和excel文件的預覽 excel可以通過把olecontainer1.oleobject.printpreview換成olecontainer1.oleobject.activesheet.printpreview顯示預覽窗,但預覽窗體...
通過程式壓縮 解壓檔案
通過引用一dll icsharpcode.dll 可以實現所述功能。一 壓縮檔案 using system using icsharpcode.sharpziplib using icsharpcode.sharpziplib.checksums using system.io using icsh...
Delphi 通過程式窗體控制代碼獲取程式路徑
引用psapi varh hwnd pid cardinal phandle thandle buf array 0.max path of char begin h getforegroundwindow 獲取當前啟用的窗體控制代碼 getwindowthreadprocessid h,pid 通...