Я работал над простой HTML-формой, которая будет запрашивать у пользователя информацию, а при отправке будет иметь PHP-скрипт по электронной почте определенным людям с календарным приглашением.
Я также хочу, чтобы тело этого календарного приглашения имело тело HTML с включенной таблицей HTML.
С помощью приведенного ниже кода я могу отправить электронное письмо, используя почтовую функцию PHP, и она генерирует встречу. Я также могу добавить HTML-контент, но таблица будет удалена.
Я где-то читал, что приглашение в календарь поддерживает только RTF. Это может быть правдой, однако я заметил, что в учетной записи OWA таблица не удаляется.
Может ли кто-нибудь пролить свет на мою дилемму? Спасибо!
function sendIcalEmail($htmlmsg,$email,$meeting_date,$s_ccemail) {$from_name = "sender name" $from_address = "sender email" $subject = "Test Appointment"; //Doubles as email subject and meeting subject in calendar $meeting_description = "Description" //Convert MYSQL datetime and construct iCal start, end and issue dates $meetingstamp = strtotime($meeting_date . " EST"); $dtstart= gmdate("Ymd\THis\Z",$meetingstamp); $dtend= gmdate("Ymd\THis\Z",$meetingstamp+7200); $todaystamp = gmdate("Ymd\THis\Z"); //Create unique identifier $cal_uid = date("Ymd")."T".date("His")."-".rand()."@mydomain.com"; //Create Mime Boundry $mime_boundary = "----Meeting Booking----".md5(time()); //Create Email Headers $headers = "From: Sender Name <[email protected]>" . "\n"; $headers .= "Cc: ". $s_ccemail . "\n"; $headers .= "Reply-To: [email protected]" . "\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/alternative; boundary=\"$mime_boundary\"\n"; $headers .= "Content-class: urn:content-classes:calendarmessage\n"; //Create Email Body (HTML) $message = ""; $message .= "--$mime_boundary\n"; $message .= "Content-Type: text/html; charset=UTF-8\n"; $message .= "Content-Transfer-Encoding: 7bit\n\n"; $message .= $htmlmsg . "\r\n"; $message .= "--{$mime_boundary}\n";
$ical = " BEGIN:VCALENDAR PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN VERSION:2.0 METHOD:PUBLISH BEGIN:VEVENT ORGANIZER:MAILTO:".$from_address." DTSTART:".$dtstart." DTEND:".$dtend." LOCATION: TRANSP:OPAQUE SEQUENCE:0 UID:".$cal_uid." DTSTAMP:".$todaystamp." DESCRIPTION:".$meeting_description." SUMMARY:".$subject." PRIORITY:5 CLASS:PUBLIC END:VEVENT END:VCALENDAR";$message .= "Content-Type: text/calendar;name="meeting.ics";method=REQUEST;charset=utf-8\n"; $message .= "Content-Type: text/calendar;name="meeting.ics";method=REQUEST\n"; $message .= "Content-Transfer-Encoding: 8bit\n\n"; $message .= $ical; //SEND MAIL $mail_sent = @mail( $email, $subject, $message, $headers ); if($mail_sent) { return true; } else { return false; }}