2

アプリが送信する.icsファイルを開く/認識するGmailが一部しかないという問題があります。通常のGmailアカウントでは問題なく機能するようですが、Googleビジネスアカウントのメールで招待状が自動的に開かれたり、ユーザーのカレンダーに自動的に配置されたりすることはありません。また、一部の電話では招待が自動的に開かれません。

function sendevent($to, $from, $fromname, $subject, $body, $method, $start, $end, $id, $app_date, $location, $status){
    $company=Company::find_by_id($_SESSION['compid']);
    $tz = $company->timezone();
    if(!empty($tz)){$tzid = ";TZID=".$tz;}else{$tzid = ";TZID=America/Chicago";}
    $mail = new PHPMailer();
    $mail->FromName = $fromname;
    $mail->From = $from;
    $mail->AddAddress($to);
    $mail->Subject = $subject;

    $vcal = "BEGIN:VCALENDAR\n";
    $vcal .= "PRODID:-//SiteArmorInc//ContractorsCloud.com//EN\n";
    $vcal .= "VERSION:2.0\n";
    $vcal .= "CALSCALE:GREGORIAN\n";
    $vcal .= "METHOD:REQUEST\n";
    $vcal .= "BEGIN:VEVENT\n";
    $vcal .= "DTSTART".$tzid.":".date("Ymd\THi00", strtotime($start))."\n";
    $vcal .= "DTEND".$tzid.":".date("Ymd\THi00", strtotime($end))."\n";
    $vcal .= "DTSTAMP".$tzid.":".date("Ymd\THi00", time())."\n";
    $vcal .= "ORGANIZER;CN=".$from.":mailto:".$from."\n";
    $vcal .= "UID:".$id."\n";
    $vcal .= "ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPT;RSVP=TRUE;CN=".$to.";X-NUM-GUESTS=0:mailto:".$to."\n";
    $vcal .= "CREATED".$tzid.":".date("Ymd\THi00", strtotime($app_date))."\n";
    $vcal .= "DESCRIPTION:".str_replace("\n", "\N",str_replace(",","\,",$body))."\n";
    $vcal .= "LOCATION:".str_replace(",","\,",$location)."\n";
    $vcal .= "LAST-MODIFIED".$tzid.":".date("Ymd\THi00", time())."\n";
    $vcal .= "SEQUENCE:0\n";
    $vcal .= "STATUS:CONFIRMED\n";
    $vcal .= "SUMMARY:".str_replace(",","\,",$subject)."\n";
    $vcal .= "TRANSP:OPAQUE\n";
    $vcal .= "END:VEVENT\n";
    $vcal .= "END:VCALENDAR\n";

    $mail->AddStringAttachment($vcal, "ccloud_invite.ics", "8bit", "text/calendar; charset=utf-8; method=REQUEST");
    $mail->Body = $body;
    if($mail->Send()){return true;}
}

何か案は?

4

0 に答える 0