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
Expand|Select|Wrap|Line Numbers
- -------------------------------------
- //$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,$message_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 = "Quattro Corporate Catering";
- $from_address = "orders@quattrocatering.com.au";
- $meeting_description = $message_body."\n\n";
- $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.">\n";
- $headers .= "Reply-To: ".$from_name." <".$from_address.">\n";
- $headers .= "MIME-Version: 1.0\n";
- $headers .= "Content-Type: text/calendar;\nmethod=REQUEST;\n";
- $headers .= ' charset="UTF-8"';
- $headers .= "\n";
- $headers .= "Content-Transfer-Encoding: 7bit";
- //Create Email Body (HTML)
- $message = "--$mime_boundary\r\n";
- $message .= "Content-Type: text/html; charset=UTF-8\n";
- $message .= "Content-Transfer-Encoding: 8bit\n\n";
- $message .= "<html>\n";
- $message .= "<body>\n";
- $message .= '<p>Dear '.$to_name.',</p>';
- $message .= '<p>'.$description.'</p>';
- $message .= "</body>\n";
- $message .= "</html>\n";
- $message .= "--$mime_boundary\r\n";
- //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\n';
- $message .= "Content-Transfer-Encoding: 8bit\n\n";
- $message .= $ical;
- //SEND MAIL
- ob_start();
- wp_mail( $email, $subject, $message, $headers, $attachments );
- ob_end_clean();
- }