php脚本,用于抓取约会的电子邮件,并生成一个.ics文件,通过电子邮件发送给相关用户,以方便安排

php脚本,用于抓取约会的电子邮件,并生成一个.ics文件,通过电子邮件发送给相关用户,以方便安排,php,email,icalendar,postfix-mta,Php,Email,Icalendar,Postfix Mta,我在一家公司工作,我们有一个托管的CRM,它发送工作表。我们试图用php编写一个脚本,通过电子邮件向我们发送分配给我们的工作的日历条目。目前,代码(如下)会刮除我们的电子邮件并向我们发送a.ics,但它的输出是一个有效的.ics文件(我们可以手动导入它们)不会在电子邮件中显示为可接受的邀请,因此我们可以简单地接受输入建议和代码片段 --原始代码-- $mbox=FALSE; $imap_username="User@tbclaunceston.com.au"; $imap_password="P

我在一家公司工作,我们有一个托管的CRM,它发送工作表。我们试图用php编写一个脚本,通过电子邮件向我们发送分配给我们的工作的日历条目。目前,代码(如下)会刮除我们的电子邮件并向我们发送a.ics,但它的输出是一个有效的.ics文件(我们可以手动导入它们)不会在电子邮件中显示为可接受的邀请,因此我们可以简单地接受输入建议和代码片段

--原始代码--
$mbox=FALSE;
$imap_username="User@tbclaunceston.com.au";
$imap_password="Password";

$connection="{".$server.":".$port."}".$path;
$mbox=imap_open($connection, $imap_username, $imap_password);
$messages=imap_search($mbox, 'UNSEEN SUBJECT "Commtrak: Job Card"');
foreach($messages as $message){
//var_dump(imap_header($mbox,$message));
$bodynormal = imap_body($mbox,$message);
$body = str_replace(" "," ",strip_tags($bodynormal));

$to = $imap_username;       
$subjectsearch = array("Company Name:","Job ID:");
    $subject = locatedata($body,"Company Name:","Job ID:");

    $organizer = 'CommTrak';
    $organizer_email = 'testaccount1@tbclaunceston.com.au';

    $participant_name_1 = 'User';
    $participant_email_1= $imap_username;
if(strpos($body,"Sales Contact:")!=false){
    $search = "Sales Contact:";
}
else{
    $search = "Customer Contact:";
}
if(locatedata($body,"Site Address:",$search)=="As Above"){
        $location = locatedata($body,"Customer Address:","Site Address:");
}
else{
    $location = locatedata($body,"Site Address:",$search);
}
$date = "20".implode('', array_reverse(explode("/",locatedata($body,"Date:","Time:"))));
$startTime = locatedata($body,"Time:","For:");
$endTime = date("H:i",strtotime($startTime." +".str_replace("hrs","hours",locatedata($body,"For:","JOB DESCRIPTION:"))));
$startTime = str_replace(":","",$startTime);
$endTime = str_replace(":","",$endTime);
    $desc = locatedata($body,"JOB DESCRIPTION:","CO Number:");
$headers = "From: CommTrak Jobs <testaccount1@tbclaunceston.com.au>\n"; 
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/calendar; charset=utf-8; name=jobcard.ics; method=REQUEST\r\n";
$headers .= "Content-Disposition: inline; filename='jobcard.ics'\r\n";
//$headers .= "Content-class','urn:content-classes:calendarmessage";
$headers .= "Content-Transfer-Encoding: base64";

$message = "BEGIN:VCALENDAR\r\nMETHOD:REQUEST\r\nPRODID:Microsoft Exchange Server 2010\r\nVERSION:2.0\r\nBEGIN:VTIMEZONE\r\nTZID:Tasmania Standard Time\r\nBEGIN:STANDARD\r\nDTSTART:16010101T030000\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1000\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=4\r\nEND:STANDARD\r\nBEGIN:DAYLIGHT\r\nDTSTART:16010101T020000\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1100\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=10\r\nEND:DAYLIGHT\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nORGANIZER;CN=".$organizer.":mailto:".$organizer_email."\r\nATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=".$participant_name_1.":MAILTO:".$participant_email_1."\r\nDESCRIPTION;LANGUAGE=en-US:".$desc."\r\nUID:".md5(uniqid(mt_rand(),true))."tbclaunceston.com.au\r\nSUMMARY;LANGUAGE=en-US:".$subject."\r\nDTSTART;TZID='Tasmania Standard Time':".$date."T".$startTime."00\r\nDTEND;TZID='Tasmania Standard Time':".$date."T".$endTime."00\r\nCLASS:PUBLIC\r\nPRIORITY:5\r\nDTSTAMP:".gmdate('Ymd').'T'.gmdate('His')."Z\r\nTRANSP:OPAQUE\r\nSTATUS:CONFIRMED\r\nSEQUENCE:0\r\nLOCATION;LANGUAGE=en-US:".$location."\r\nX-MICROSOFT-CDO-APPT-SEQUENCE:0\r\nX-MICROSOFT-CDO-OWNERAPPTID:1787906015\r\nX-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE\r\nX-MICROSOFT-CDO-INTENDEDSTATUS:BUSY\r\nX-MICROSOFT-CDO-ALLDAYEVENT:FALSE\r\nX-MICROSOFT-CDO-IMPORTANCE:1\r\nX-MICROSOFT-CDO-INSTTYPE:0\r\nX-MICROSOFT-DISALLOW-COUNTER:FALSE\r\nBEGIN:VALARM\r\nDESCRIPTION:REMINDER\r\nTRIGGER;RELATED=START:-PT15M\r\nACTION:DISPLAY\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
//$headers .= $message;
$message = base64_encode($message);
mail($to, $subject, $message, $headers);
break;
//echo $message."\r\n***********************\r\n";   
}
?>
$mbox=FALSE;
$imap_用户名=”User@tbclaunceston.com.au";
$imap_password=“password”;
$connection=“{..$server.”:“$port.”}“..$path;
$mbox=imap\U打开($connection,$imap\U username,$imap\U password);
$messages=imap_搜索($mbox,'看不见的主题“Commtrak:Job Card”);
foreach($messages作为$message){
//var_dump(imap_头($mbox,$message));
$bodynormal=imap_body($mbox,$message);
$body=str_replace(“,”,strip_标记($bodynormal));
$to=$imap\U用户名;
$subjectsearch=数组(“公司名称:”,“作业ID:”);
$subject=locatedata($body,“公司名称:”,“职务ID:”);
$organizer='CommTrak';
$organizer\u电子邮件地址:testaccount1@tbclaunceston.com.au';
$participant_name_1='User';
$participant\u email\u 1=$imap\u用户名;
if(strpos($body,“销售联系人:)!=false){
$search=“销售联系人:”;
}
否则{
$search=“客户联系人:”;
}
if(locatedata($body,“Site Address:,$search)==“如上所述”){
$location=locatedata($body,“客户地址:”,“站点地址:”);
$connection="{".$server.":".$port."}".$path;
$mbox=imap_open($connection, $imap_username, $imap_password);
$messages=imap_search($mbox, 'UNSEEN SUBJECT "Commtrak: Job Card"');
foreach($messages as $message){
    //var_dump(imap_header($mbox,$message));
    $boundary=uniqid("np");
    $bodynormal = imap_body($mbox,$message);
    $body = str_replace("&nbsp;"," ",strip_tags($bodynormal));

    //$to = $imap_username;
    $to = "testaccount@gmail.com";      
    $subjectsearch = array("Company Name:","Job ID:");
        $subject = locatedata($body,"Company Name:","Job ID:");

        $organizer = 'CommTrak';
        $organizer_email = 'testaccount1@tbclaunceston.com.au';

        $participant_name_1 = 'a User';
        $participant_email_1= $imap_username;
    if(strpos($body,"Sales Contact:")!=false){
        $search = "Sales Contact:";
    }
    else{
        $search = "Customer Contact:";
    }
    if(locatedata($body,"Site Address:",$search)=="As Above"){
            $location = locatedata($body,"Customer Address:","Site Address:");
    }
    else{
        $location = locatedata($body,"Site Address:",$search);
    }
    $date = "20".implode('', array_reverse(explode("/",locatedata($body,"Date:","Time:"))));
    $startTime = locatedata($body,"Time:","For:");
    $endTime = date("H:i",strtotime($startTime." +".str_replace("hrs","hours",locatedata($body,"For:","JOB DESCRIPTION:"))));
    $startTime = str_replace(":","",$startTime);
    $endTime = str_replace(":","",$endTime);
        $desc = locatedata($body,"JOB DESCRIPTION:","CO Number:");
    $headers = "From: CommTrak Jobs <testaccount1@tbclaunceston.com.au>\n"; 
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "To:".$to."\r\n";
    $headers .= "Content-type:multipart/alternative;boundary=".$boundary."\r\n\r\n--".$boundary."\r\n";
    $headers .= "Content-Type: text/calendar; charset=utf-8; name=jobcard.ics; method=REQUEST\r\n";
    $headers .= "Content-Disposition: inline; filename='jobcard.ics'\r\n";
    //$headers .= "Content-class','urn:content-classes:calendarmessage";
    $headers .= "Content-Transfer-Encoding: base64;
    //boundary=".$boundary."\r\n";

    $message = "BEGIN:VCALENDAR\r\nMETHOD:REQUEST\r\nPRODID:Microsoft Exchange Server 2010\r\nVERSION:2.0\r\nBEGIN:VTIMEZONE\r\nTZID:Tasmania Standard Time\r\nBEGIN:STANDARD\r\nDTSTART:16010101T030000\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1000\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=4\r\nEND:STANDARD\r\nBEGIN:DAYLIGHT\r\nDTSTART:16010101T020000\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1100\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=10\r\nEND:DAYLIGHT\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nORGANIZER;CN=".$organizer.":mailto:".$organizer_email."\r\nATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=".$participant_name_1.":MAILTO:".$participant_email_1."\r\nDESCRIPTION;LANGUAGE=en-US:".$desc."\r\nUID:".md5(uniqid(mt_rand(),true))."tbclaunceston.com.au\r\nSUMMARY;LANGUAGE=en-US:".$subject."\r\nDTSTART;TZID='Tasmania Standard Time':".$date."T".$startTime."00\r\nDTEND;TZID='Tasmania Standard Time':".$date."T".$endTime."00\r\nCLASS:PUBLIC\r\nPRIORITY:5\r\nDTSTAMP:".gmdate('Ymd').'T'.gmdate('His')."Z\r\nTRANSP:OPAQUE\r\nSTATUS:CONFIRMED\r\nSEQUENCE:0\r\nLOCATION;LANGUAGE=en-US:".$location."\r\nX-MICROSOFT-CDO-APPT-SEQUENCE:0\r\nX-MICROSOFT-CDO-OWNERAPPTID:1787906015\r\nX-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE\r\nX-MICROSOFT-CDO-INTENDEDSTATUS:BUSY\r\nX-MICROSOFT-CDO-ALLDAYEVENT:FALSE\r\nX-MICROSOFT-CDO-IMPORTANCE:1\r\nX-MICROSOFT-CDO-INSTTYPE:0\r\nX-MICROSOFT-DISALLOW-COUNTER:FALSE\r\nBEGIN:VALARM\r\nDESCRIPTION:REMINDER\r\nTRIGGER;RELATED=START:-PT15M\r\nACTION:DISPLAY\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
    //$message = base64_encode($message);
    $message .= "\r\n\r\n--".$boundary."\r\n";
    mail($to, $subject, $message, $headers);
    break;
    //echo $message."\r\n***********************\r\n";   
}
?>
} 否则{ $location=locatedata($body,“站点地址:”,$search);
$connection="{".$server.":".$port."}".$path;
$mbox=imap_open($connection, $imap_username, $imap_password);
$messages=imap_search($mbox, 'UNSEEN SUBJECT "Commtrak: Job Card"');
foreach($messages as $message){
    //var_dump(imap_header($mbox,$message));
    $boundary=uniqid("np");
    $bodynormal = imap_body($mbox,$message);
    $body = str_replace("&nbsp;"," ",strip_tags($bodynormal));

    //$to = $imap_username;
    $to = "testaccount@gmail.com";      
    $subjectsearch = array("Company Name:","Job ID:");
        $subject = locatedata($body,"Company Name:","Job ID:");

        $organizer = 'CommTrak';
        $organizer_email = 'testaccount1@tbclaunceston.com.au';

        $participant_name_1 = 'a User';
        $participant_email_1= $imap_username;
    if(strpos($body,"Sales Contact:")!=false){
        $search = "Sales Contact:";
    }
    else{
        $search = "Customer Contact:";
    }
    if(locatedata($body,"Site Address:",$search)=="As Above"){
            $location = locatedata($body,"Customer Address:","Site Address:");
    }
    else{
        $location = locatedata($body,"Site Address:",$search);
    }
    $date = "20".implode('', array_reverse(explode("/",locatedata($body,"Date:","Time:"))));
    $startTime = locatedata($body,"Time:","For:");
    $endTime = date("H:i",strtotime($startTime." +".str_replace("hrs","hours",locatedata($body,"For:","JOB DESCRIPTION:"))));
    $startTime = str_replace(":","",$startTime);
    $endTime = str_replace(":","",$endTime);
        $desc = locatedata($body,"JOB DESCRIPTION:","CO Number:");
    $headers = "From: CommTrak Jobs <testaccount1@tbclaunceston.com.au>\n"; 
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "To:".$to."\r\n";
    $headers .= "Content-type:multipart/alternative;boundary=".$boundary."\r\n\r\n--".$boundary."\r\n";
    $headers .= "Content-Type: text/calendar; charset=utf-8; name=jobcard.ics; method=REQUEST\r\n";
    $headers .= "Content-Disposition: inline; filename='jobcard.ics'\r\n";
    //$headers .= "Content-class','urn:content-classes:calendarmessage";
    $headers .= "Content-Transfer-Encoding: base64;
    //boundary=".$boundary."\r\n";

    $message = "BEGIN:VCALENDAR\r\nMETHOD:REQUEST\r\nPRODID:Microsoft Exchange Server 2010\r\nVERSION:2.0\r\nBEGIN:VTIMEZONE\r\nTZID:Tasmania Standard Time\r\nBEGIN:STANDARD\r\nDTSTART:16010101T030000\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1000\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=4\r\nEND:STANDARD\r\nBEGIN:DAYLIGHT\r\nDTSTART:16010101T020000\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1100\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=10\r\nEND:DAYLIGHT\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nORGANIZER;CN=".$organizer.":mailto:".$organizer_email."\r\nATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=".$participant_name_1.":MAILTO:".$participant_email_1."\r\nDESCRIPTION;LANGUAGE=en-US:".$desc."\r\nUID:".md5(uniqid(mt_rand(),true))."tbclaunceston.com.au\r\nSUMMARY;LANGUAGE=en-US:".$subject."\r\nDTSTART;TZID='Tasmania Standard Time':".$date."T".$startTime."00\r\nDTEND;TZID='Tasmania Standard Time':".$date."T".$endTime."00\r\nCLASS:PUBLIC\r\nPRIORITY:5\r\nDTSTAMP:".gmdate('Ymd').'T'.gmdate('His')."Z\r\nTRANSP:OPAQUE\r\nSTATUS:CONFIRMED\r\nSEQUENCE:0\r\nLOCATION;LANGUAGE=en-US:".$location."\r\nX-MICROSOFT-CDO-APPT-SEQUENCE:0\r\nX-MICROSOFT-CDO-OWNERAPPTID:1787906015\r\nX-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE\r\nX-MICROSOFT-CDO-INTENDEDSTATUS:BUSY\r\nX-MICROSOFT-CDO-ALLDAYEVENT:FALSE\r\nX-MICROSOFT-CDO-IMPORTANCE:1\r\nX-MICROSOFT-CDO-INSTTYPE:0\r\nX-MICROSOFT-DISALLOW-COUNTER:FALSE\r\nBEGIN:VALARM\r\nDESCRIPTION:REMINDER\r\nTRIGGER;RELATED=START:-PT15M\r\nACTION:DISPLAY\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
    //$message = base64_encode($message);
    $message .= "\r\n\r\n--".$boundary."\r\n";
    mail($to, $subject, $message, $headers);
    break;
    //echo $message."\r\n***********************\r\n";   
}
?>
} $date=“20”。内爆(“”,数组_反转(爆炸(“/”,locatedata($body,“date:”,“Time:”))); $startTime=locatedata($body,“Time:”,“For:”); $endTime=date(“H:i”,strottime($startTime.+”).str_替换(“hr”,“hours”,locatedata($body,“For:”,“JOB DESCRIPTION:”))); $startTime=str_replace(“:”、“,$startTime”); $endTime=str_replace(“:”,“,$endTime”); $desc=locatedata($body,“职务描述:”,“公司编号:”); $headers=“From:CommTrak作业\n”; $headers.=“MIME版本:1.0\n”; $headers.=“内容类型:文本/日历;字符集=utf-8;名称=jobcard.ics;方法=请求\r\n”; $headers.=“内容配置:内联;filename='jobcard.ics'\r\n”; //$headers.=“内容类”,“urn:Content-classes:calendarmessage”; $headers.=“内容传输编码:base64”; $message="开始:VCALENDAR\r\n方法:请求\r\n修改:Microsoft Exchange Server 2010\r\n版本:2.0\r\nBGIN:VTIMEZONE\r\nZID:Tasmania标准时间\r\nBGIN:Standard\r\nDTSTART:16010101T030000\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1000\r\nRule:FREQ=year;INTERVAL=1;BYDAY=1SU;BYMONTH=4\r\n日期:Standard\r\nBGIN:DAYLIGHT\r\nBTStart:1601010200000\r\nFFSETFROM:+1000\r\nTZOFFSETTO:+1100\r\nrule:FREQ=year;INTERVAL=1;BYDAY=1SU;BYMONTH=10\r\nEND:DAYLIGHT\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nORGANIZER\nORGANIZER;CN=“.$organizer.”:mailto:“.organizer\u电子邮件”\r\n\n“$desc.”\r\nUID:“.md5(uniqid(mt_rand(),true)).”tbclaunceston.com.au\r\n概要;LANGUAGE=en-US:“.subject.”\r\nDTSTART;TZID='Tasmania标准时间':“$date.”T.“$startTime.”00\r\nDTEND;TZID='Tasmania标准时间':“$date.”T.“$endTime.”00\r\r\n类别:PUBLIC\r\n优先级:5\r\nDTSTAMP:“.gmdate('Ymd'.'T.”gmdate('His')。Z\r\n转换:不透明\r\n状态:已确认\r\n顺序:0\r\n位置;语言=en US:“.$location.”\r\nX MICROSOFT CDO应用程序顺序:0\r\nX MICROSOFT CDO所有者应用程序ID:1787906015\r\nX MICROSOFT CDO总线状态:暂定\r\nX MICROSOFT CDO意向状态:忙碌\r\nX MICROSOFT CDO全天事件:错误\r\nX MICROSOFT CDO重要性:1\r\nX MICROSOFT CDO指令类型:0\r\nX MICROSOFT不允许计数器:错误\r\nbGen:VALARM\r\n说明:提醒\r\nTRIGGER;RELATED=START:-PT15M\r\n操作:显示\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n”;
$connection="{".$server.":".$port."}".$path;
$mbox=imap_open($connection, $imap_username, $imap_password);
$messages=imap_search($mbox, 'UNSEEN SUBJECT "Commtrak: Job Card"');
foreach($messages as $message){
    //var_dump(imap_header($mbox,$message));
    $boundary=uniqid("np");
    $bodynormal = imap_body($mbox,$message);
    $body = str_replace("&nbsp;"," ",strip_tags($bodynormal));

    //$to = $imap_username;
    $to = "testaccount@gmail.com";      
    $subjectsearch = array("Company Name:","Job ID:");
        $subject = locatedata($body,"Company Name:","Job ID:");

        $organizer = 'CommTrak';
        $organizer_email = 'testaccount1@tbclaunceston.com.au';

        $participant_name_1 = 'a User';
        $participant_email_1= $imap_username;
    if(strpos($body,"Sales Contact:")!=false){
        $search = "Sales Contact:";
    }
    else{
        $search = "Customer Contact:";
    }
    if(locatedata($body,"Site Address:",$search)=="As Above"){
            $location = locatedata($body,"Customer Address:","Site Address:");
    }
    else{
        $location = locatedata($body,"Site Address:",$search);
    }
    $date = "20".implode('', array_reverse(explode("/",locatedata($body,"Date:","Time:"))));
    $startTime = locatedata($body,"Time:","For:");
    $endTime = date("H:i",strtotime($startTime." +".str_replace("hrs","hours",locatedata($body,"For:","JOB DESCRIPTION:"))));
    $startTime = str_replace(":","",$startTime);
    $endTime = str_replace(":","",$endTime);
        $desc = locatedata($body,"JOB DESCRIPTION:","CO Number:");
    $headers = "From: CommTrak Jobs <testaccount1@tbclaunceston.com.au>\n"; 
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "To:".$to."\r\n";
    $headers .= "Content-type:multipart/alternative;boundary=".$boundary."\r\n\r\n--".$boundary."\r\n";
    $headers .= "Content-Type: text/calendar; charset=utf-8; name=jobcard.ics; method=REQUEST\r\n";
    $headers .= "Content-Disposition: inline; filename='jobcard.ics'\r\n";
    //$headers .= "Content-class','urn:content-classes:calendarmessage";
    $headers .= "Content-Transfer-Encoding: base64;
    //boundary=".$boundary."\r\n";

    $message = "BEGIN:VCALENDAR\r\nMETHOD:REQUEST\r\nPRODID:Microsoft Exchange Server 2010\r\nVERSION:2.0\r\nBEGIN:VTIMEZONE\r\nTZID:Tasmania Standard Time\r\nBEGIN:STANDARD\r\nDTSTART:16010101T030000\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1000\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=4\r\nEND:STANDARD\r\nBEGIN:DAYLIGHT\r\nDTSTART:16010101T020000\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1100\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=10\r\nEND:DAYLIGHT\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nORGANIZER;CN=".$organizer.":mailto:".$organizer_email."\r\nATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=".$participant_name_1.":MAILTO:".$participant_email_1."\r\nDESCRIPTION;LANGUAGE=en-US:".$desc."\r\nUID:".md5(uniqid(mt_rand(),true))."tbclaunceston.com.au\r\nSUMMARY;LANGUAGE=en-US:".$subject."\r\nDTSTART;TZID='Tasmania Standard Time':".$date."T".$startTime."00\r\nDTEND;TZID='Tasmania Standard Time':".$date."T".$endTime."00\r\nCLASS:PUBLIC\r\nPRIORITY:5\r\nDTSTAMP:".gmdate('Ymd').'T'.gmdate('His')."Z\r\nTRANSP:OPAQUE\r\nSTATUS:CONFIRMED\r\nSEQUENCE:0\r\nLOCATION;LANGUAGE=en-US:".$location."\r\nX-MICROSOFT-CDO-APPT-SEQUENCE:0\r\nX-MICROSOFT-CDO-OWNERAPPTID:1787906015\r\nX-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE\r\nX-MICROSOFT-CDO-INTENDEDSTATUS:BUSY\r\nX-MICROSOFT-CDO-ALLDAYEVENT:FALSE\r\nX-MICROSOFT-CDO-IMPORTANCE:1\r\nX-MICROSOFT-CDO-INSTTYPE:0\r\nX-MICROSOFT-DISALLOW-COUNTER:FALSE\r\nBEGIN:VALARM\r\nDESCRIPTION:REMINDER\r\nTRIGGER;RELATED=START:-PT15M\r\nACTION:DISPLAY\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
    //$message = base64_encode($message);
    $message .= "\r\n\r\n--".$boundary."\r\n";
    mail($to, $subject, $message, $headers);
    break;
    //echo $message."\r\n***********************\r\n";   
}
?>
//$headers.=$message; $message=base64_编码($message); 邮件($to、$subject、$message、$headers); 打破 //echo$消息。“\r\n******************************\r\n”; } ?>
--当前代码迭代
$connection="{".$server.":".$port."}".$path;
$mbox=imap_open($connection, $imap_username, $imap_password);
$messages=imap_search($mbox, 'UNSEEN SUBJECT "Commtrak: Job Card"');
foreach($messages as $message){
    //var_dump(imap_header($mbox,$message));
    $boundary=uniqid("np");
    $bodynormal = imap_body($mbox,$message);
    $body = str_replace("&nbsp;"," ",strip_tags($bodynormal));

    //$to = $imap_username;
    $to = "testaccount@gmail.com";      
    $subjectsearch = array("Company Name:","Job ID:");
        $subject = locatedata($body,"Company Name:","Job ID:");

        $organizer = 'CommTrak';
        $organizer_email = 'testaccount1@tbclaunceston.com.au';

        $participant_name_1 = 'a User';
        $participant_email_1= $imap_username;
    if(strpos($body,"Sales Contact:")!=false){
        $search = "Sales Contact:";
    }
    else{
        $search = "Customer Contact:";
    }
    if(locatedata($body,"Site Address:",$search)=="As Above"){
            $location = locatedata($body,"Customer Address:","Site Address:");
    }
    else{
        $location = locatedata($body,"Site Address:",$search);
    }
    $date = "20".implode('', array_reverse(explode("/",locatedata($body,"Date:","Time:"))));
    $startTime = locatedata($body,"Time:","For:");
    $endTime = date("H:i",strtotime($startTime." +".str_replace("hrs","hours",locatedata($body,"For:","JOB DESCRIPTION:"))));
    $startTime = str_replace(":","",$startTime);
    $endTime = str_replace(":","",$endTime);
        $desc = locatedata($body,"JOB DESCRIPTION:","CO Number:");
    $headers = "From: CommTrak Jobs <testaccount1@tbclaunceston.com.au>\n"; 
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "To:".$to."\r\n";
    $headers .= "Content-type:multipart/alternative;boundary=".$boundary."\r\n\r\n--".$boundary."\r\n";
    $headers .= "Content-Type: text/calendar; charset=utf-8; name=jobcard.ics; method=REQUEST\r\n";
    $headers .= "Content-Disposition: inline; filename='jobcard.ics'\r\n";
    //$headers .= "Content-class','urn:content-classes:calendarmessage";
    $headers .= "Content-Transfer-Encoding: base64;
    //boundary=".$boundary."\r\n";

    $message = "BEGIN:VCALENDAR\r\nMETHOD:REQUEST\r\nPRODID:Microsoft Exchange Server 2010\r\nVERSION:2.0\r\nBEGIN:VTIMEZONE\r\nTZID:Tasmania Standard Time\r\nBEGIN:STANDARD\r\nDTSTART:16010101T030000\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1000\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=4\r\nEND:STANDARD\r\nBEGIN:DAYLIGHT\r\nDTSTART:16010101T020000\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1100\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=10\r\nEND:DAYLIGHT\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nORGANIZER;CN=".$organizer.":mailto:".$organizer_email."\r\nATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=".$participant_name_1.":MAILTO:".$participant_email_1."\r\nDESCRIPTION;LANGUAGE=en-US:".$desc."\r\nUID:".md5(uniqid(mt_rand(),true))."tbclaunceston.com.au\r\nSUMMARY;LANGUAGE=en-US:".$subject."\r\nDTSTART;TZID='Tasmania Standard Time':".$date."T".$startTime."00\r\nDTEND;TZID='Tasmania Standard Time':".$date."T".$endTime."00\r\nCLASS:PUBLIC\r\nPRIORITY:5\r\nDTSTAMP:".gmdate('Ymd').'T'.gmdate('His')."Z\r\nTRANSP:OPAQUE\r\nSTATUS:CONFIRMED\r\nSEQUENCE:0\r\nLOCATION;LANGUAGE=en-US:".$location."\r\nX-MICROSOFT-CDO-APPT-SEQUENCE:0\r\nX-MICROSOFT-CDO-OWNERAPPTID:1787906015\r\nX-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE\r\nX-MICROSOFT-CDO-INTENDEDSTATUS:BUSY\r\nX-MICROSOFT-CDO-ALLDAYEVENT:FALSE\r\nX-MICROSOFT-CDO-IMPORTANCE:1\r\nX-MICROSOFT-CDO-INSTTYPE:0\r\nX-MICROSOFT-DISALLOW-COUNTER:FALSE\r\nBEGIN:VALARM\r\nDESCRIPTION:REMINDER\r\nTRIGGER;RELATED=START:-PT15M\r\nACTION:DISPLAY\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
    //$message = base64_encode($message);
    $message .= "\r\n\r\n--".$boundary."\r\n";
    mail($to, $subject, $message, $headers);
    break;
    //echo $message."\r\n***********************\r\n";   
}
?>
$connection=“{..$server.”:“$port.”路径;
$mbox=imap\U打开($connection,$imap\U username,$imap\U password);
$messages=imap_搜索($mbox,'看不见的主题“Commtrak:Job Card”);
foreach($messages作为$message){
//var_dump(imap_头($mbox,$message));
$boundary=uniqid(“np”);
$bodynormal=imap_body($mbox,$message);
$body=str_replace(“,”,strip_标记($bodynormal));
//$to=$imap\U用户名;
$to=”testaccount@gmail.com";      
$subjectsearch=数组(“公司名称:”,“作业ID:”);
$subject=locatedata($body,“公司名称:”,“职务ID:”);
$organizer='CommTrak';
$organizer\u电子邮件地址:testaccount1@tbclaunceston.com.au';
$participant_name_1='a User';
$participant\u email\u 1=$imap\u用户名;
if(strpos($body,“销售联系人:)!=false){
$search=“销售联系人:”;
}
否则{
$search=“客户联系人:”;
}
if(locatedata($body,“Site Address:,$search)==“如上所述”){
$location=locatedata($body,“客户地址:”,“站点地址:”);
$connection="{".$server.":".$port."}".$path;
$mbox=imap_open($connection, $imap_username, $imap_password);
$messages=imap_search($mbox, 'UNSEEN SUBJECT "Commtrak: Job Card"');
foreach($messages as $message){
    //var_dump(imap_header($mbox,$message));
    $boundary=uniqid("np");
    $bodynormal = imap_body($mbox,$message);
    $body = str_replace("&nbsp;"," ",strip_tags($bodynormal));

    //$to = $imap_username;
    $to = "testaccount@gmail.com";      
    $subjectsearch = array("Company Name:","Job ID:");
        $subject = locatedata($body,"Company Name:","Job ID:");

        $organizer = 'CommTrak';
        $organizer_email = 'testaccount1@tbclaunceston.com.au';

        $participant_name_1 = 'a User';
        $participant_email_1= $imap_username;
    if(strpos($body,"Sales Contact:")!=false){
        $search = "Sales Contact:";
    }
    else{
        $search = "Customer Contact:";
    }
    if(locatedata($body,"Site Address:",$search)=="As Above"){
            $location = locatedata($body,"Customer Address:","Site Address:");
    }
    else{
        $location = locatedata($body,"Site Address:",$search);
    }
    $date = "20".implode('', array_reverse(explode("/",locatedata($body,"Date:","Time:"))));
    $startTime = locatedata($body,"Time:","For:");
    $endTime = date("H:i",strtotime($startTime." +".str_replace("hrs","hours",locatedata($body,"For:","JOB DESCRIPTION:"))));
    $startTime = str_replace(":","",$startTime);
    $endTime = str_replace(":","",$endTime);
        $desc = locatedata($body,"JOB DESCRIPTION:","CO Number:");
    $headers = "From: CommTrak Jobs <testaccount1@tbclaunceston.com.au>\n"; 
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "To:".$to."\r\n";
    $headers .= "Content-type:multipart/alternative;boundary=".$boundary."\r\n\r\n--".$boundary."\r\n";
    $headers .= "Content-Type: text/calendar; charset=utf-8; name=jobcard.ics; method=REQUEST\r\n";
    $headers .= "Content-Disposition: inline; filename='jobcard.ics'\r\n";
    //$headers .= "Content-class','urn:content-classes:calendarmessage";
    $headers .= "Content-Transfer-Encoding: base64;
    //boundary=".$boundary."\r\n";

    $message = "BEGIN:VCALENDAR\r\nMETHOD:REQUEST\r\nPRODID:Microsoft Exchange Server 2010\r\nVERSION:2.0\r\nBEGIN:VTIMEZONE\r\nTZID:Tasmania Standard Time\r\nBEGIN:STANDARD\r\nDTSTART:16010101T030000\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1000\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=4\r\nEND:STANDARD\r\nBEGIN:DAYLIGHT\r\nDTSTART:16010101T020000\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1100\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=10\r\nEND:DAYLIGHT\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nORGANIZER;CN=".$organizer.":mailto:".$organizer_email."\r\nATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=".$participant_name_1.":MAILTO:".$participant_email_1."\r\nDESCRIPTION;LANGUAGE=en-US:".$desc."\r\nUID:".md5(uniqid(mt_rand(),true))."tbclaunceston.com.au\r\nSUMMARY;LANGUAGE=en-US:".$subject."\r\nDTSTART;TZID='Tasmania Standard Time':".$date."T".$startTime."00\r\nDTEND;TZID='Tasmania Standard Time':".$date."T".$endTime."00\r\nCLASS:PUBLIC\r\nPRIORITY:5\r\nDTSTAMP:".gmdate('Ymd').'T'.gmdate('His')."Z\r\nTRANSP:OPAQUE\r\nSTATUS:CONFIRMED\r\nSEQUENCE:0\r\nLOCATION;LANGUAGE=en-US:".$location."\r\nX-MICROSOFT-CDO-APPT-SEQUENCE:0\r\nX-MICROSOFT-CDO-OWNERAPPTID:1787906015\r\nX-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE\r\nX-MICROSOFT-CDO-INTENDEDSTATUS:BUSY\r\nX-MICROSOFT-CDO-ALLDAYEVENT:FALSE\r\nX-MICROSOFT-CDO-IMPORTANCE:1\r\nX-MICROSOFT-CDO-INSTTYPE:0\r\nX-MICROSOFT-DISALLOW-COUNTER:FALSE\r\nBEGIN:VALARM\r\nDESCRIPTION:REMINDER\r\nTRIGGER;RELATED=START:-PT15M\r\nACTION:DISPLAY\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
    //$message = base64_encode($message);
    $message .= "\r\n\r\n--".$boundary."\r\n";
    mail($to, $subject, $message, $headers);
    break;
    //echo $message."\r\n***********************\r\n";   
}
?>
} 否则{ $location=locatedata($body,“站点地址:”,$search);
$connection="{".$server.":".$port."}".$path;
$mbox=imap_open($connection, $imap_username, $imap_password);
$messages=imap_search($mbox, 'UNSEEN SUBJECT "Commtrak: Job Card"');
foreach($messages as $message){
    //var_dump(imap_header($mbox,$message));
    $boundary=uniqid("np");
    $bodynormal = imap_body($mbox,$message);
    $body = str_replace("&nbsp;"," ",strip_tags($bodynormal));

    //$to = $imap_username;
    $to = "testaccount@gmail.com";      
    $subjectsearch = array("Company Name:","Job ID:");
        $subject = locatedata($body,"Company Name:","Job ID:");

        $organizer = 'CommTrak';
        $organizer_email = 'testaccount1@tbclaunceston.com.au';

        $participant_name_1 = 'a User';
        $participant_email_1= $imap_username;
    if(strpos($body,"Sales Contact:")!=false){
        $search = "Sales Contact:";
    }
    else{
        $search = "Customer Contact:";
    }
    if(locatedata($body,"Site Address:",$search)=="As Above"){
            $location = locatedata($body,"Customer Address:","Site Address:");
    }
    else{
        $location = locatedata($body,"Site Address:",$search);
    }
    $date = "20".implode('', array_reverse(explode("/",locatedata($body,"Date:","Time:"))));
    $startTime = locatedata($body,"Time:","For:");
    $endTime = date("H:i",strtotime($startTime." +".str_replace("hrs","hours",locatedata($body,"For:","JOB DESCRIPTION:"))));
    $startTime = str_replace(":","",$startTime);
    $endTime = str_replace(":","",$endTime);
        $desc = locatedata($body,"JOB DESCRIPTION:","CO Number:");
    $headers = "From: CommTrak Jobs <testaccount1@tbclaunceston.com.au>\n"; 
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "To:".$to."\r\n";
    $headers .= "Content-type:multipart/alternative;boundary=".$boundary."\r\n\r\n--".$boundary."\r\n";
    $headers .= "Content-Type: text/calendar; charset=utf-8; name=jobcard.ics; method=REQUEST\r\n";
    $headers .= "Content-Disposition: inline; filename='jobcard.ics'\r\n";
    //$headers .= "Content-class','urn:content-classes:calendarmessage";
    $headers .= "Content-Transfer-Encoding: base64;
    //boundary=".$boundary."\r\n";

    $message = "BEGIN:VCALENDAR\r\nMETHOD:REQUEST\r\nPRODID:Microsoft Exchange Server 2010\r\nVERSION:2.0\r\nBEGIN:VTIMEZONE\r\nTZID:Tasmania Standard Time\r\nBEGIN:STANDARD\r\nDTSTART:16010101T030000\r\nTZOFFSETFROM:+1100\r\nTZOFFSETTO:+1000\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=4\r\nEND:STANDARD\r\nBEGIN:DAYLIGHT\r\nDTSTART:16010101T020000\r\nTZOFFSETFROM:+1000\r\nTZOFFSETTO:+1100\r\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=10\r\nEND:DAYLIGHT\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nORGANIZER;CN=".$organizer.":mailto:".$organizer_email."\r\nATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=".$participant_name_1.":MAILTO:".$participant_email_1."\r\nDESCRIPTION;LANGUAGE=en-US:".$desc."\r\nUID:".md5(uniqid(mt_rand(),true))."tbclaunceston.com.au\r\nSUMMARY;LANGUAGE=en-US:".$subject."\r\nDTSTART;TZID='Tasmania Standard Time':".$date."T".$startTime."00\r\nDTEND;TZID='Tasmania Standard Time':".$date."T".$endTime."00\r\nCLASS:PUBLIC\r\nPRIORITY:5\r\nDTSTAMP:".gmdate('Ymd').'T'.gmdate('His')."Z\r\nTRANSP:OPAQUE\r\nSTATUS:CONFIRMED\r\nSEQUENCE:0\r\nLOCATION;LANGUAGE=en-US:".$location."\r\nX-MICROSOFT-CDO-APPT-SEQUENCE:0\r\nX-MICROSOFT-CDO-OWNERAPPTID:1787906015\r\nX-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE\r\nX-MICROSOFT-CDO-INTENDEDSTATUS:BUSY\r\nX-MICROSOFT-CDO-ALLDAYEVENT:FALSE\r\nX-MICROSOFT-CDO-IMPORTANCE:1\r\nX-MICROSOFT-CDO-INSTTYPE:0\r\nX-MICROSOFT-DISALLOW-COUNTER:FALSE\r\nBEGIN:VALARM\r\nDESCRIPTION:REMINDER\r\nTRIGGER;RELATED=START:-PT15M\r\nACTION:DISPLAY\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
    //$message = base64_encode($message);
    $message .= "\r\n\r\n--".$boundary."\r\n";
    mail($to, $subject, $message, $headers);
    break;
    //echo $message."\r\n***********************\r\n";   
}
?>
} $date=“20”。内爆(“”,数组_反转(爆炸(“/”,locatedata($body,“date:”,“Time:”))); $startTime=locatedata($body,“Time:”,“For:”); $endTime=date(“H:i”,strottime($startTime.+”).str_替换(“hr”,“hours”,locatedata($body,“For:”,“JOB DESCRIPTION:”))); $startTime=str_replace(“:”、“,$startTime”); $endTime=str_replace(“:”,“,$endTime”); $desc=locatedata($body,“职务描述:”,“公司编号:”); $headers=“From:CommTrak作业\n”; $headers.=“MIME版本:1.0\r\n”; $headers.=“到:”.$To.“\r\n”; $headers.=“内容类型:多部分/可选;边界=”.$boundary.\r\n\r\n--“$boundary.\r\n”; $headers.=“内容类型:文本/日历