php - Yii, PHPMailer : how to send an email with HTML and ICS format -
i trying send email html , ics format gmail, outlook, yahoo, thunderbird, outlook express 2013 , iphone, able send ics format gmail, outlook , yahoo.
issue not able send html format in same mail
tried following code
public function createschedulenotification(){ $from = 'info@careervita.com'; $fromname = 'info'; $to = 'testcareervita@outlook.com'; $subject = 'invitation test demo'; $desc = 'this test demo invitaion'; $uid = date('ymd').'t'.date('his')."-".rand(); $message = "begin:vcalendar\r\n"; $message.= "prodid:-//zoho crm//nonsgml calendar//en\r\n"; $message.= "version:2.0\r\n"; $message.= "x-wr-timezone:gmt\r\n"; $message.= "x-wr-calname:zcrm\r\n"; $message.= "method:request\r\n"; $message.= "calscale:gregorian\r\n"; $message.= "begin:vevent\r\n"; $message.= "uid:".$uid."\r\n"; $message.= "description:".$desc."\r\n"; $message.= "organizer;cn= manisha:mailto:manisha.g@careervita.com\r\n"; $message.= "dtstart:20150710t100010z\r\n"; $message.= "dtend:20150710t110000z\r\n"; $message.= "attendee;role=req-participant;partstat=needs-action;cn=vinod t:mailto:g_manisha@outlook.com\r\n"; $message.= "attendee;role=req-participant;partstat=needs-action;cn=vivek j:mailto:manisha.gaidhane8788@gmail.com\r\n"; $message.= "location:cv360\r\n"; $message.= "created:20150701t060720z\r\n"; $message.= "last-modified:20150701t060720z\r\n"; $message.= "x-event-owner:1563791000000084003\r\n"; $message.= "end:vevent\r\n"; $message.= "end:vcalendar"; yii::import('application.extensions.phpmailer.jphpmailer'); $mailer = new jphpmailer(true); if (yum::module()->phpmailer['transport']) switch (yum::module()->phpmailer['transport']){ case 'smtp': $mailer->issmtp(); break; case 'sendmail': $mailer->issendmail(); break; case 'qmail': $mailer->isqmail(); break; case 'mail': default: $mailer->ismail(); } else $mailer->ismail(); $mailer->ishtml(true); $mailerconf=yum::module()->phpmailer['properties']; if(is_array($mailerconf)) foreach($mailerconf $key=>$value) { if(isset(jphpmailer::${$key})) jphpmailer::${$key} = $value; else $mailer->$key=$value; } $mailer->setfrom($from); $mailer->addaddress($to); $mailer->subject = $subject; $mailer->body = $message; $mailer->addcc('testcareervita@gmail.com', 'person one'); $mailer->addcc('testcareervita@yahoo.in', 'person two'); $mailer->contenttype = 'text/calendar'; $mailer->charset = 'utf-8'; $mailer->addcustomheader("mime-version : 1.0"); $mailer->addcustomheader('content-type : text/calendar; name="testcal.ics"; method=request;'); $mailer->addcustomheader('content-transfer-encoding:7bit'); //to interpret ics file $mailer->addcustomheader("content-class: urn:content-classes:calendarmessage"); $mailer->addcustomheader('content-disposition : inline; filename="testcal.ics"'); return $mailer->send(); }
- how send html data within same email?
- also outlook .ics file not getting download
appreciable
you should not add custom headers - break things.
phpmailer includes simple ics generation class called easypeasyics. it's simple, important things. how use it, refer this example in test suite.
however you're generating it, stick ics data $mail->ical
, added multipart/alternative
text/calendar
part alongside usual text/html
, text/plain
parts. tricky , unreliable in clients, , run trouble if try use attachments @ same time.
unfortunately phpmailer doesn't let build arbitrary mime structures, , messy support ical parts more comprehensively, in face of broken support in clients require messy workaround, this issue discusses.
Comments
Post a Comment