通过程序发送会议邀请

有些业务需要给用户发送会议邀请,其实不是很复杂的问题,但是因为要兼容各种客户端,所以很容易导致各种问题,我就被坑了几次。时区问题,时间错乱问题等等。

下面贴上会议邀请的配置:

$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:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server version 14.02.5004.000">\n<TITLE></TITLE>\n</HEAD>\n<BODY>' . $content . '</BODY>\n</HTML>
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也是不能缺少,否则更新时间后会新建一个事件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值