Outlook中的错误时区和说明

时间:2013-11-01 13:17:08

标签: php datetime outlook timezone icalendar

我发送的活动日期为20131101T130000Z和20131101T150000Z至outlook,但活动时间为10:00:00 - 12:00:00。

我尝试在脚本中添加时区,但不能。 时区是America / Fortaleza,距格林威治标准时间不到3小时。

另一个错误。这是一个不发送到事件的描述,它被设置并包含变量$ subject

中的信息

public static function enviaReuniao($dtstart,$dtend,$loc,$summary,$from,$to,$subject, $project) {
        $vcal = "BEGIN:VCALENDAR\r\n";
        $vcal .= "VERSION:2.0\r\n";
        $vcal .= "PRODID:-//Esmaltec\r\n";
        $vcal .= "METHOD:REQUEST\r\n";
        $vcal .= "BEGIN:VEVENT\r\n";
        $vcal .= "ATTENDEE;CN=\"Sistemas 3\";ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:leandror@intranet.esmaltec.com.br\r\n";
        $vcal .= "ATTENDEE;CN=\"Leandro Pedrosa\";ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:leandror@intranet.esmaltec.com.br\r\n";
        $vcal .= "UID:".date('Ymd').'T'.date('His')."-".rand()."-esmaltec.com.br\r\n";
        $vcal .= "DTSTAMP:".date('Ymd').'T'.date('His')."\r\n";
        $vcal .= "DTSTART:$dtstart\r\n";
        $vcal .= "DTEND:$dtend\r\n"; 
        if ($loc != "") $vcal .= "LOCATION:$loc\r\n";
        $vcal .= "SUMMARY:$summary\r\n";
        $vcal .= "ORGANIZER; CN=\"EPROJ - $project\":mailto:leandror@intranet.esmaltec.com.br\n";
        $vcal .= "SEQUENCE:0\r\n";
        $vcal .= "BEGIN:VALARM\r\n";
        $vcal .= "TRIGGER:-PT15M\r\n";
        $vcal .= "ACTION:DISPLAY\r\n";
        $vcal .= "DESCRIPTION:$subject\r\n";
        $vcal .= "END:VALARM\r\n";
        $vcal .= "END:VEVENT\r\n";
        $vcal .= "END:VCALENDAR\r\n";

    //echo $vcal;
 //iso-8859-1
    $headers = "From: $from\r\nReply-To: $from"; 
    $headers .= "\r\nMIME-version: 1.0\r\nContent-Type: text/calendar; method=REQUEST; charset=\"utf-8\"";
    $headers .= "\r\nContent-Transfer-Encoding: 7bit\r\nX-Mailer: Microsoft Office Outlook 12.0"; 

    if(mail($to, $summary, $vcal, $headers)) { 
        return true;
    } else { 
        return false;
    }
 }  

The example:

enviaReuniao ("20131101T130000Z", "20131101T150000Z", "Location", "Title", "example@example.com", "example1@example.com", "Description", "Project 1");

1 个答案:

答案 0 :(得分:0)

如果您使用的是20131101T130000Z格式,则所有时间均以GMT / UTC表示。鉴于America / Fortaleza是UTC-3h(http://www.timeanddate.com/worldclock/timezone.html?n=491),预计此事件应该在10:00出现。所以你看到的是正常的。

就DESCRIPTION问题而言,此属性可以同时出现在VEVENT和VALARM中(请参阅http://tools.ietf.org/html/rfc5545#section-3.8.1.5)。在您的示例中,它仅在VALARM组件中添加(它仅用于提醒)。所以你应该把它添加到VEVENT本身,例如在摘要之后。