title: sending ical through zend_mail
body: <p>Can someone guide me in right direction.</p>
  
  <p>I am trying to send my all calendar events to my users using mail. I have a php function which is working as per my expectations. I am trying to implement the same functionality in zend framework using zend_mail.</p>
  
  <p>Here is the function that is working.</p>
  
  <pre><code>function sendIcalEmail($firstname,$lastname,$email,$meeting_date,$meeting_name,$meeting_duration) {
  
      $from_name = "RK";
      $from_address = "m.ravikant10@gmail.com";
      $subject = "Meeting Booking"; //Doubles as email subject and meeting subject in calendar
      $meeting_description = "Here is a brief description of my meeting\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()."@mydomain.com";
  
      //Create Mime Boundry
      $mime_boundary = "----Meeting Booking----".md5(time());
  
      //Create Email Headers
      $headers = "From: ".$from_name." &lt;".$from_address."&gt;\n";
      $headers .= "Reply-To: ".$from_name." &lt;".$from_address."&gt;\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: 8bit\n\n";
  
      $message .= "&lt;html&gt;\n";
      $message .= "&lt;body&gt;\n";
      $message .= '&lt;p&gt;Dear '.$firstname.' '.$lastname.',&lt;/p&gt;';
      $message .= '&lt;p&gt;Here is my HTML Email / Used for Meeting Description&lt;/p&gt;';    
      $message .= "&lt;/body&gt;\n";
      $message .= "&lt;/html&gt;\n";
      $message .= "--$mime_boundary\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
  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
  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
      //echo $message;die;
      $mail_sent = mail( $email, $subject, $message, $headers );
  
      if($mail_sent)     {
          return true;
      } else {
          return false;
      }   
  
  }
  </code></pre>
  
  <p>I tried to change zend headers and message body but its not working. As in the function there are multiple headers being send in message body. </p>
  
  <pre><code>//Create email
          $email = new Zend_Mail('UTF-8');
          $email-&gt;setFrom($senderEmail, $senderName);
          $email-&gt;addTo($toEmail, $toName);
          $email-&gt;setSubject($subject);
  
          $timestamp  = date('Ymd').'T'.date('His');
          $uid        = date('Ymd').'T'.date('His') . "-" . rand() . '@domain.com';
          $dtCreated  = date('Ymd').'T'.date('His');
          $dtStart    = date('Ymd', strtotime($start)) . 'T' . date('His', strtotime($start));
          $dtEnd      = date('Ymd', strtotime($end)) . 'T' . date('His', strtotime($end));
          $eventSubject       = 'adding calendar events';
          $eventDescription   = $description;
  
  
          $ical = &lt;&lt;&lt;ICALENDAR_DATA
  BEGIN:VCALENDAR
  PRODID:-//Product/Platform/Name//EN
  VERSION:2.0
  CALSCALE:GREGORIAN
  METHOD:REQUEST
  BEGIN:VEVENT
  DTSTART:{$dtStart}
  DTEND:{$dtEnd}
  DTSTAMP:{$timestamp}
  UID:{$uid}
  SUMMARY:{$eventSubject}
  DESCRIPTION:{$eventDescription}
  CREATED:{$dtCreated}
  LAST-MODIFIED:{$dtCreated}
  LOCATION:{$location}
  SEQUENCE:0
  STATUS:CONFIRMED
  TRANSP:OPAQUE
  ORGANIZER:MAILTO:xyz@gmail.com
  BEGIN:VALARM
  ACTION:DISPLAY
  DESCRIPTION:My cal request
  TRIGGER:-P0DT0H10M0S
  END:VALARM
  END:VEVENT
  END:VCALENDAR
  ICALENDAR_DATA;
  
              //$email-&gt;addHeader('Content-class', 'urn:content-classes:calendarmessage');
      //$email-&gt;addHeader('Content-Type', 'text/calendar; method=REQUEST; charset="UTF-8"');
      //$email-&gt;addHeader('Content-Transfer-Encoding', '7bit');
  
          $attach = new Zend_Mime_Part($ical);
          $attach-&gt;type       = 'text/calendar';
          $attach-&gt;disposition= Zend_Mime::DISPOSITION_INLINE;
          $attach-&gt;encoding   = Zend_Mime::ENCODING_8BIT;
          $attach-&gt;filename   = 'calendar.ics'; 
  
          $email-&gt;addAttachment($attach);
          $email-&gt;setBodyText('name');
              $email-&gt;send($transport);
  </code></pre>