带有附件问题的 php outlook 日历事件

标签 php email outlook vcalendar

我们的邮件附件有问题。目前我正在为带有附件的 outlook 日历事件工作。一切都很好,我收到了带附件的邮件,但我只收到附件小于 10Kb 的电子邮件。否则我没有收到任何邮件。如果我使用 chunk_split() 功能比我收到的电子邮件有超过 10Kb 的文件附件,但只收到文件的一部分(我用文本文件测试我只得到前几行)。

我检查了服务器,它有发送大文件的能力。

这是我的代码。请帮帮我..

if($filename_path ==''){
     $filename_path = './Upload/Cal_temp/'.$filename2;
     $filename_pathnew = base_url().'Upload/Cal_temp/'.$filename2;
}

$calendid = $this->input->post('calendar_id');

$handle = fopen($filename_path, "r");
$contents = fread($handle, filesize($filename_path));
fclose($handle);

$finaldata =  base64_encode($contents);
 $finaldata = chunk_split($finaldata);

$dataone = filesize($filename_path);
$datatwo = strlen($contents); 


define('DATE_ICAL', 'Ymd\THis');
$fromname = 'example';   

$vcal  = "BEGIN:VCALENDAR\n";
$vcal .= "VERSION:2.0\n";
$vcal .= "METHOD:PUBLISH\n"; //requied by Outlook
$vcal .= "X-MS-OLK-FORCEINSPECTOROPEN:TRUE\n";
$vcal .= "BEGIN:VEVENT\n";
/* $vcal .= "STATUS:".$this->input->post('status')."\n"; */
$vcal .= "DTSTART:".date(DATE_ICAL, strtotime($s_date.' '.$s_time))."\n";
$vcal .= "DTEND:".date(DATE_ICAL, strtotime($e_date.' '.$e_time))."\n";
$vcal .= "SUMMARY: ".$desc_txt." ".$empname['firstname'].' '.$empname['lastname']."-".$clientname['firstname'].' '.$clientname['lastname']."\n";
$vcal .= "DESCRIPTION: Your appointment has been updated for ".$empname['firstname'].' '.$empname['lastname']." with ".$clientname['firstname'].' '.$clientname['lastname']." with regard to ".$jobnumber." and ".$taskcode." between ".$s_date.' '.$s_time." and ".$e_date.' '.$e_time."\r\n\r\n";
$vcal .= "ATTACH;ENCODING=BASE64;VALUE=BINARY;X-FILENAME=".$filename2.":".$finaldata."=\n";

$vcal .= "CLASS:PUBLIC\n";
$vcal .= "TRANSP:OPAQUE\n";
$vcal .= "UID:". $calendid ."\n";
$vcal .= "SEQUENCE:0\n";


$vcal .= "SUMMARY;LANGUAGE=en-us:excel\n";
$vcal .= "X-MICROSOFT-CDO-BUSYSTATUS:BUSY
            X-MICROSOFT-CDO-IMPORTANCE:1
            X-MICROSOFT-DISALLOW-COUNTER:FALSE
            X-MS-OLK-ALLOWEXTERNCHECK:TRUE
            X-MS-OLK-AUTOFILLLOCATION:FALSE
            X-MS-OLK-CONFTYPE:0
            BEGIN:VALARM
            TRIGGER:-PT15M
            ACTION:DISPLAY
            DESCRIPTION:Reminder
            END:VALARM
            END:VEVENT
            END:VCALENDAR";


$headers = "From: ".$fromemail."\r\nReply-To: "; 
$headers .= "\r\nMIME-version: 1.0\r\nContent-Type: text/calendar; method=REQUEST; charset=\"utf-8\"";
$headers .= "\r\n Content-Transfer-Encoding: base64\r\nX-Mailer: Microsoft Office Outlook 12.0"; 
//$headers .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$subject = 'Your appointment has been updated';

mail($email, $subject, $vcal, $headers);

我尝试了几乎所有类型的标题,但没有成功。

最佳答案

也许标题前面的空间可能是问题所在

-$headers .="\r\n Content-Transfer-Encoding:...
+$headers .="\r\nContent-Transfer-Encoding:...

关于带有附件问题的 php outlook 日历事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22458305/

相关文章:

php - PDO::PARAM_FLOAT 不存在,为什么?

php - 使用 jquery 显示评论

html - 电子邮件中的视频?

android - 给定电子邮件地址查询 Android 联系人的快速高效方法

c# - 从 Outlook 中为嵌入式 MSG 附件检索 DragDrop EventArgs 的内容被拖到控件上

php - PHP 数组的笛卡尔积

php - 查找数字是否介于 MySQL 数据库中不同字段中的两个数字之间

php - 在 one.com 上使用 smtp 和 php

c# - 自定义 Outlook 加载项未显示

html - 表 : To send via Outlook 内的背景图像重复