diff -uNr expressov2.2/calendar/inc/class.bocalendar.inc.php expressov2/calendar/inc/class.bocalendar.inc.php --- expressov2.2/calendar/inc/class.bocalendar.inc.php 2011-04-25 10:38:19.000000000 -0300 +++ expressov2/calendar/inc/class.bocalendar.inc.php 2011-04-25 11:51:31.000000000 -0300 @@ -2973,7 +2973,8 @@ { if(!is_array($event_arrays)) return null; - + $sender = $GLOBALS['phpgw_info']['user']['email']; + $uid_dono = $GLOBALS['phpgw_info']['user']['account_lid']; $tmpattach="BEGIN:VCALENDAR\n" ."PRODID:-//Expresso Livre//Calendar//EN\n" ."VERSION:1.0\n"; @@ -2999,11 +3000,42 @@ ."DTSTART:".$start_time."\r\n" ."DTEND:".$end_time."\r\n" ."LAST-MODIFIED:".gmdate("Ymd\THis\Z")."\r\n" //Hora no formato UTC - ."UID:Expresso-".$event['id'].$event['uid']."\r\n" + //."UID:Expresso-".$event['id'].$event['uid']."\r\n" + ."UID:Expresso-".$event[id]."@".$uid_dono."\n" ."DESCRIPTION:".$description."\r\n" ."SUMMARY:".$event['title']."\r\n" ."LOCATION:".$event['location']."\r\n" - ."END:VEVENT\r\n"; + ."ORGANIZER:mailto:".$sender."\n"; + $expart=preg_split('/,/', $event['ex_participants']); + foreach ($expart as $mail) + { if($mail != ""){ + $tmpattach.="ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:".$mail."\n"; + } + } + while (list($id,$status) = each($event['participants'])) + { + + $preferences = CreateObject('phpgwapi.preferences',$id); + $mail = $preferences->email_address($id); + if ( $sender != $mail) + { + if($status == 'U' ){ + $tmpattach.="ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:".$mail."\n"; + } + elseif($status == 'A' ){ + $tmpattach.="ATTENDEE;RSVP=TRUE;PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT:mailto:".$mail."\n"; + } + elseif($status == 'T' ){ + $tmpattach.="ATTENDEE;RSVP=TRUE;PARTSTAT=TENTATIVE;ROLE=REQ-PARTICIPANT:mailto:".$mail."\n"; + } + else + { + $tmpattach.="ATTENDEE;RSVP=TRUE;PARTSTAT=DECLINED;ROLE=REQ-PARTICIPANT:mailto:".$mail."\n"; + } + } + } + $tmpattach.="END:VEVENT"."\n"; + //."END:VEVENT\r\n"; } $tmpattach.="END:VCALENDAR\r\n"; return $tmpattach; @@ -3160,8 +3192,8 @@ $mail->Port = $emailadmin['smtpPort']; $mail->From = $GLOBALS['phpgw']->preferences->values['email']; $mail->FromName = $GLOBALS['phpgw_info']['user']['fullname']; - $mail->IsHTML(true); - + //$mail->IsHTML(true); + $mail->IsCalendar(true); // Aqui e enviado o email foreach($to_notify as $userid => $statusid) { @@ -3421,8 +3453,18 @@ break; } $mail->AddAddress($to); - $mail->Body = $tmpbody; - $mail->From = $sender; + //$mail->Body = $tmpbody; + $tmpattach_n = $this->create_vcard($GLOBALS['bocalendar']->so->cal->event); + $tmpattach = str_replace("Expresso-","",$tmpattach_n); + $mail->Body = "This is a multi-part message in MIME format."; + $mail->Body .= "\n--01BD3665.3AF0D360\n"; + $mail->Body .= "Content-Type: text/html; charset=\"iso-8859-1\"\nContent-Transfer-Encoding: 8bit\n"; + $mail->Body .= $tmpbody; + $mail->Body .= "\n--01BD3665.3AF0D360\n"; + $mail->Body .="Content-Type:text/calendar; method=REQUEST; charset=US-ASCII\nContent-Transfer-Encoding:7bit\n\n"; + $mail->Body .= $tmpattach; + $mail->Body .= "\n--01BD3665.3AF0D360--\n"; + $mail->From = $sender; $mail->FromName = $GLOBALS['phpgw_info']['user']['fullname']; $mail->Sender = $mail->From; $mail->SenderName = $mail->FromName; @@ -3447,7 +3489,8 @@ if(count($to_notify) && $this->ex_participants){ $mail->ClearAllRecipients(); $var = explode(",",trim($this->ex_participants)); - $to = array(); + $mail->IsHTML(true); + $to = array(); if(!$subject) { $details['startdate'] = $GLOBALS['phpgw']->common->show_date($starttime); $details['enddate'] = $GLOBALS['phpgw']->common->show_date($endtime); diff -uNr expressov2.2/phpgwapi/inc/class.phpmailer.inc.php expressov2/phpgwapi/inc/class.phpmailer.inc.php --- expressov2.2/phpgwapi/inc/class.phpmailer.inc.php 2011-04-25 10:37:44.000000000 -0300 +++ expressov2/phpgwapi/inc/class.phpmailer.inc.php 2011-04-25 11:09:37.000000000 -0300 @@ -233,6 +233,12 @@ * @param bool $bool * @return void */ + function Iscalendar($bool) { + if($bool == true) + $this->ContentType = "multipart/alternative;\n boundary=\"01BD3665.3AF0D360\"\n"; + else + $this->ContentType = "text/plain"; + } function IsHTML($bool) { if($bool == true) $this->ContentType = "text/html";