Hi there,
I am trying to send an email using PHP (in Wordpress) that is a calendar request. The calendar request arrives fine however the message body (which should be HTML) is blank.
Below is the code. Any help would be GREATLY appreciated.
Tania
-------------------------------------
//$firstname is the first name of target
//$lastname is the last name of target
//$email is the targets email address
//$meeting_date is straight from a DATETIME mysql field and assumes UTC.
//$meeting_name is the name of your meeting
//$meeting_duration is the duration of your meeting in seconds (3600 = 1 hour)
//$message_body is the body of the message.
function sendIcalEmail($firstname,$lastname,$email,$subject,$meeting_date,$meeting_name,$meeting_duration,$me ssage_body,$attachments = "") {
$meetingstamp = STRTOTIME($meeting_date . " UTC");
$dtstart= GMDATE("Ymd\\THis\\Z",$meetingstamp);
$dtend= GMDATE("Ymd\\THis\\Z",$meetingstamp+$meeting_duration);
$todaystamp = GMDATE("Ymd\\THis\\Z");
$from_name = "My Company";
$from_address = "company@domain.com.au";
$meeting_description = $message_body."\
\
";
$meeting_location = "My Office"; //Where will your meeting take place
//Convert MYSQL datetime and construct iCal start, end and issue dates
$meetingstamp = STRTOTIME($meeting_date . " UTC");
$dtstart= GMDATE("Ymd\\THis\\Z",$meetingstamp);
$dtend= GMDATE("Ymd\\THis\\Z",$meetingstamp+$meeting_duration);
$todaystamp = GMDATE("Ymd\\THis\\Z");
//Create unique identifier
$cal_uid = DATE('Ymd').'T'.DATE('His')."-".RAND()."@quattrocatering.com.au";
//Create Mime Boundry
$mime_boundary = "----Meeting Booking----".MD5(TIME());
/*Setting the header part, this is important */
//Create Email Headers
$headers = "From: ".$from_name." <".$from_address.">\
";
$headers .= "Reply-To: ".$from_name." <".$from_address.">\
";
$headers .= "MIME-Version: 1.0\
";
$headers .= "Content-Type: text/calendar;\
method=REQUEST;\
";
$headers .= ' charset="UTF-8"';
$headers .= "\
";
$headers .= "Content-Transfer-Encoding: 7bit";
//Create Email Body (HTML)
$message = "--$mime_boundary\\r\
";
$message .= "Content-Type: text/html; charset=UTF-8\
";
$message .= "Content-Transfer-Encoding: 8bit\
\
";
$message .= "<html>\
";
$message .= "<body>\
";
$message .= '<p>Dear '.$to_name.',</p>';
$message .= '<p>'.$description.'</p>';
$message .= "</body>\
";
$message .= "</html>\
";
$message .= "--$mime_boundary\\r\
";
//Create ICAL Content (Google rfc 2445 for details and examples of usage)
$ical = 'BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
STATUS:NEEDS ACTION
EXPECT: IMMEDIATE
ORGANIZER:MAILTO:'.$from_address.'
DTSTART:'.$dtstart.'
DTEND:'.$dtend.'
LOCATION:'.$meeting_location.'
TRANSP:OPAQUE
SEQUENCE:0
UID:'.$cal_uid.'
DTSTAMP:'.$todaystamp.'
DESCRIPTION:'.$meeting_description.'
SUMMARY:'.$subject.'
PRIORITY:5
X-MICROSOFT-CDO-IMPORTANCE:1
CLASS:PUBLIC
BEGIN:VALARM
TRIGGER:-PT3D
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
BEGIN:VTIMEZONE
TZID:US/Central
END:VTIMEZONE
END:VEVENT
END:VCALENDAR';
$message .= 'Content-Type: text/calendar;name="meeting.ics";method=REQUEST\
';
$message .= "Content-Transfer-Encoding: 8bit\
\
";
$message .= $ical;
//SEND MAIL
ob_start();
wp_mail( $email, $subject, $message, $headers, $attachments );
ob_end_clean();
}