Я работал над простой HTML-формой, которая будет запрашивать информацию у пользователя и, когда он будет отправлен, получит скрипт PHP по электронной почте для определенных людей с приглашением в календарь.
Я также хочу, чтобы в теле приглашения календаря было тело HTML - с включенной таблицей HTML.
С помощью приведенного ниже кода я могу отправить электронное письмо с помощью функции почты PHP, и оно генерирует назначение. Я также могу добавить контент HTML, однако таблица удаляется.
Я где-то читал, что приглашение в календарь поддерживает только RTF. Это может быть правдой, однако я заметил, что в учетной записи OWA таблица не удаляется.
Может кто-нибудь пролить свет на мою дилемму? Спасибо!
function sendIcalEmail($htmlmsg,$email,$meeting_date,$s_ccemail) {</p>
<pre><code>$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 <noreply@domain.com>" . "\n";
$headers .= "Cc: ". $s_ccemail . "\n";
$headers .= "Reply-To: noreply@domain.com" . "\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";
</code>
$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;
}}