EasyPeasyICS没有通过我的电子邮件

时间:2015-07-27 08:04:46

标签: php codeigniter email phpmailer

在codeigniter中,使用phpMailer,我正在尝试使用EasyPeasyICS来帮助构建带有ics文件的电子邮件,这是我代码的一部分:

    $invite = new EasyPeasyICS();
    $invite->addEvent(strtotime($appointment_data['start_datetime']),strtotime($appointment_data['end_datetime']),
        $service_data['name'],$message." ".$appointment_link,$appointment_link);
    $mail = new PHPMailer();    
    $mail->From = $company_settings['company_email'];
    $mail->FromName = $company_settings['company_name'];
    $mail->AddAddress($receiver_address); // "Name" argument crushes the phpmailer class.
    $mail->IsHTML(true);
    $mail->CharSet = 'UTF-8';
    $mail->Subject = $title;
    $mail->Body  =  $email_html;
    $mail->Ical = $invite->render(false);
    if (!$mail->Send()) {
        throw new Exception('Email could not been sent. Mailer Error (Line ' 
                . __LINE__ . '): ' . $mail->ErrorInfo);
    }

    return TRUE;
}

所以,我得到的是我的HTML电子邮件,没有ICS文件。如果我修改$ mail-> Ical = $ invite-> render(true),那么ics文件会下载给我,我看到ICS文件包含在我的HTML中,因为它应该是,它看起来很棒。为什么不发送电子邮件?

1 个答案:

答案 0 :(得分:0)

即使使用最新版本(5.2.22),如果要解析Ical,也必须设置AltBody。因为要加载Ical需要替代(alt)消息类型。

但是如果您指定Ical,您的电子邮件将成为一个事件,并将被电子邮件客户端视为该事件。