2014-03-12 35 views
0

我試圖使用Laravel的MAIL類將一個.ics文件作爲電子郵件附件發送。收到電子郵件後,Gmail不會要求我將活動添加到日曆。不過,我可以通過上傳收到的文件輕鬆地將事件添加到日曆中。 (格式是有效的。)還有一個小日曆圖標,但沒有花哨的格式或任何格式。 下面是我使用的代碼:在Laravel 4.1中發送.ics事件作爲電子郵件附件

$filename = "invite.ics"; 

$data[0] = "BEGIN:VCALENDAR"; 
$data[1] = "PRODID:-//Google Inc//Google Calendar 70.9054//EN"; 
$data[2] = "VERSION:2.0"; 
$data[3] = "CALSCALE:GREGORIAN"; 
$data[4] = "METHOD:REQUEST"; 
$data[8] = "BEGIN:VEVENT"; 
$data[9] = "DTSTART:20140312T080000Z"; 
$data[10] = "DTEND:20140312T103000Z"; 
$data[11] = "DTSTAMP:20140312T072230Z"; 
$data[12] = "UID:[email protected]"; 
$data[13] = "CREATED:20140312T072126Z"; 
$data[14] = "DESCRIPTION:Hair cut\, 2\,5h\, 300Eur"; 
$data[15] = "LAST-MODIFIED:20140312T072206Z"; 
$data[16] = "LOCATION:"; 
$data[17] = "SEQUENCE:0"; 
$data[18] = "STATUS:CONFIRMED"; 
$data[19] = "SUMMARY:Matu griešana"; 
$data[20] = "TRANSP:OPAQUE"; 
$data[21] = "END:VEVENT"; 
$data[22] = "END:VCALENDAR"; 


$data = implode("\r\n", $data); 
header("text/calendar"); 
file_put_contents($filename, "\xEF\xBB\xBF". $data); 

Mail::send('emails.temp', array(), function($message) use($filename) 
{ 
    $message->from('[email protected]', 'Jon Doe'); 
    $message->to('[email protected]')->subject('Registration information'); 

    $message->attach($filename, array('mime' => "text/calendar")); 
}); 
+0

所以事實證明,現在的問題是如何設置電子郵件的身體的MIME類型'文/ calendar'。 – Osvalds

+0

你最終得到它的工作嗎? – u01jmg3

回答

-1

上的目標創建一個文件和武官它

name ="invite.ics" 
matter= 
"BEGIN:VCALENDAR 
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN 
VERSION:2.0 
METHOD:PUBLISH 
BEGIN:VEVENT 
ORGANIZER:MAILTO:[email protected] 
DTSTART:20150315T170000Z 
DTEND:20150315T180000Z 
LOCATION:La Taska 
TRANSP:OPAQUE 
SEQUENCE:0 
UID:d41d8cd98f00b204e9800998ecf8427e 
DTSTAMP:20150313T150000Z 
DESCRIPTION:The Programn Description 
SUMMARY:The Programn Description 
PRIORITY:5 
CLASS:PUBLIC 
END:VEVENT 
END:VCALENDAR" 
+0

呃......我認爲這不能解決問題。 OP在附加這樣的事件時遇到了麻煩。你建議問題的答案就是問題本身。 – rayryeng

相關問題